Исходя из C, как я должен изучать Python? [закрыто]

17
задан spencer nelson 18 August 2010 в 20:49
поделиться

6 ответов

Я знал C до того, как узнал Python. Без обид, но я не думаю, что ваши знания C имеют такое большое значение. Если вы не читаете очень, очень медленно, просто приступайте к изучению Python. Просмотрите материал, с которым вы знакомы, не так много времени, и это не значит, что учебник по Python, нацеленный на программистов на C, не сделает вас лучше программиста на Python - он может научить вас чему-то в другом порядке, вот и все. , и поднимите некоторые конкретные вещи, которые вы бы сделали на C, но не должны делать в Python.

Строки в Python на самом деле несколько отличаются от строк в C, и они используются по-другому. Я настоятельно рекомендую изучить их «с нуля», а не думать о них с точки зрения их отличий от строк C. Во-первых, в Python 2 лучше , а не использовать "строковый" класс Python для представления строк: существует отдельный строковый класс Unicode, а для практических приложений Python (почти все, что связано с пользовательскими данными) вам понадобится этот . (Python 3 исправляет это, превращая класс str в строку Unicode). Вам необходимо установить хорошую рабочую практику для юникодных / байтовых данных и декодирования / кодирования.

Распространенная ошибка при изучении второго языка программирования - думать: «Я умею программировать, мне просто нужно перевести то, что я делаю на C, на Python». Нет, не знаешь. Хотя верно, что алгоритм может быть в основном одним и тем же на разных языках, естественный способ выполнения определенной задачи может быть совершенно различным на разных языках. Вы напишете лучший код Python, если научитесь идиоматически использовать Python, чем если попытаетесь написать Python как программист на C. Многие из известных вам «уловок», которые имеют смысл в C, будут либо бессмысленными, либо контрпродуктивными в Python. И наоборот, многие вещи, которые вы должны делать с удовольствием в типичной программе Python, такие как выделение и освобождение большого количества памяти, - это вещи, над которыми в C вы, вероятно, научились дважды думать. Отчасти потому, что типичная программа на C имеет другие ограничения, чем типичная программа на Python, а отчасти потому, что вам просто нужно написать больше кода и больше думать, чтобы сделать это правильно на C, чем на Python.

Если вы изучаете язык, потому что вам срочно нужно запрограммировать систему / платформу, на которой есть Python, но нет C, то написание программ Python, которые работают как программы C, является разумной временной мерой. Но это, вероятно, не относится к вам, и даже если это так, это не конечная цель.

Одна вещь, на которую вам может быть интересно взглянуть из-за вашего опыта работы с C, - это Python / C API. Python отлично подходит для многих вещей, но он не приводит к максимально быстрому вычислительному ядру научных приложений (вероятно, и C, но пока не будем углубляться в FORTRAN ;-)].Итак, если вы стремитесь продолжить научное программирование, перейдя на Python, и ваши программы, как правило, связаны с шиной памяти и процессором, выполняя огромное количество вычислений (миллиарды операций), тогда вам может быть интересно узнать, как чтобы сбежать в C, если вам когда-нибудь понадобится. Однако считайте это последним средством.

Однако вам нужно достаточно хорошо понять Python, прежде чем Python / C API обретет смысл.

О да, и если вы хотите понять ООП в целом, не забудьте позже взглянуть на что-то вроде Java, Objective-C, C ++ или D. Python - это не просто объектно-ориентированный язык, это динамический объектно-ориентированный язык. язык. Вы можете не понять этого, сравнивая только C с Python, но динамические и статические типы - это совершенно независимая проблема от ООП-ности Python. Объекты Python похожи на хэш-таблицы, которые позволяют вам волей-неволей присоединять новые поля, но объекты во многих других объектно-ориентированных языках хранят данные способами, которые намного больше похожи на структуру C struct .

29
ответ дан 30 November 2019 в 10:18
поделиться

Diveintopython, официальная документация, «Learning python» Марка Латца (4-е издание) - одна из лучших книг.

1
ответ дан 30 November 2019 в 10:18
поделиться

Все, что я знаю о Python, я узнал из официальной документации: http://docs.python.org/

И это бесплатно.

15
ответ дан 30 November 2019 в 10:18
поделиться

Я бы порекомендовал книгу Как думать Как компьютерный ученый в Python . Это действительно помогло мне освоить Python (теперь мой любимый язык), пришедший из Java, C и C ++.

4
ответ дан 30 November 2019 в 10:18
поделиться

Если у вас есть опыт программирования, Python довольно прост в освоении. Самая обременительная задача - изучить библиотеки и идиомы. Документация на python.org неплохая и бесплатная. Если вы занимаетесь вычислением чисел, вам почти наверняка захочется ознакомиться с расширением numpy .

1
ответ дан 30 November 2019 в 10:18
поделиться

погружение в python - хорошее место для начала

запустите интерпретатор, IPython даже лучше, чем простой интерпретатор Python

используйте dir() и help(), чтобы потыкаться вокруг

и не забудьте прочитать официальную документацию хотя бы один раз

9
ответ дан 30 November 2019 в 10:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: