python — вопросы с ответами

Python – объектно-ориентированный язык программирования. Его отличает многофункциональность и простота изучения.

Кстати: Работают с Python с помощью специальной среды разработки. По умолчанию используется поставляющаяся вместе с дистрибутивом языка среда IDLE, однако можно программировать и в сторонних редакторах.

История создания

Язык Python начал разрабатывать в 1989 году программист из Нидерландов Гвидо Ван Россум. Новый язык задумывался как более совершенная версия созданного несколькими годами ранее языка АВС и должен был уметь обрабатывать исключения и взаимодействовать с использовавшейся голландскими учеными операционной системой Amoeba.

Работа была закончена в 1991 году. Именно тогда свет увидела версия «Питона», имевшая номер 0.9.0.

Особенности

Python – объектно-ориентированный язык. Это значит, что он оперирует объектами, объединенными в классы, расположенные в определенной иерархии. Это значительно облегчает написание кода. Однако помимо объектно-ориентированного подхода этот язык также позволяет использовать императивный и функциональный стили программирования.

«Питон» отличают три основные особенности:

  • Простота и единообразие синтаксиса. Операторы и способы построения выражений на «Питоне» хорошо продуманы и не перегружены, что позволяет легко читать код, написанный на этом языке. Кроме того, это дает возможность программистам для выполнения какой-либо задачи использовать меньше строк кода, чем в других языках (например, С);
  • Жесткая типизация. В отличие от того же С, все данные в «Питоне» имеют свои четко определенные типы, преобразовать или изменить которые можно только написанием функции для этого.

Кстати: Функция в Python для изменения типов данных требуется в очень многих случаях, но далеко не всегда. Это позволяет определить систему типов в «Питоне» скорее как динамическую, а не жесткую.

  • Автоматическое управление памятью. Диспетчер памяти языка самостоятельно ищет объекты, которые больше не используются программой, и выгружает их;

С одной стороны, автоматическое управление памятью – удобная вещь, но с другой – диспетчер памяти не всегда удаляет из нее все ненужные объекты, поэтому память перегружается и ее приходится чистить вручную.

  • Многофункциональность. Python используют для всего, что угодно: веб-разработки, написания программ, машинного обучения, автоматизации процессов. И это лишь малая часть областей его применения. Так, на этом языке было написано большинство версий торрент-клиента BitTorrent, а также мультиплатформенный графический редактор Gimp.

Синтаксис

Рассмотрим основы синтаксиса Python.

Операторы

«Питон» использует довольно стандартный для языков программирования набор операторов. Вот его основные операторы:

  • If, else, elif - операторы условия;
  • While, for – операторы цикла;
  • Class –оператор, определяющий класс;
  • Def – определяет функцию, генератор или метод;
  • Try-finally – обрабатывает исключения;
  • Pass – этот оператор не выполняет никакой функции. Его используют для пустых блоков кода.

Выражения

Выражения – это несколько последовательных элементов кода, выполняющих определенную задачу. В Python выражения – не только определенный «кусочек» скрипта, представляющий какую-либо информацию. Они также могут выполнять роль операторов.

Отличительная черта выражений в Python – стремление к минимализму. Так, язык подразумевает почти полное отсутствие лишних элементов в коде (таких, как скобки). Это позволяет выполнить имеющуюся задачу с помощью краткого, лаконично написанного скрипта.

В языке присутствуют так называемые «ленивые вычисления» при использовании операций «и»/«или». Под ними понимается принцип, используемый в некоторых языках программирования, согласно которому вычисление откладывается до тех пор, пока в нем не возникает необходимость. При этом вместо результата вычисления используется определенное число. В «Питоне» это значение первого операнда.

Строки документации

Для удобства чтения кода в «Питоне» предусмотрены строки документации. Это буквенные значения, которые ставятся в начале функции, модуля или класса. При исполнении кода они, в отличие от некоторых других языков, никуда не удаляются. По сути, частью синтаксиса документирование не является. Тем не менее, его применение общепринято.

Библиотеки

Библиотека – это набор готового кода для решения определенных задач. При их использовании программисту нужно лишь подставить туда свои данные. Библиотеки значительно облегчают работу с любым языком программирования. Фактически, она без них невозможна.

Одна из сильных сторон «Питона» - большое количество библиотек на все случаи жизни. Вот некоторые из них:

  • Jupiter. Это не только библиотека, но и командная оболочка для вычислений на «Питоне» и некоторых других языках. С ее помощью можно писать код, а также тестировать и отлаживать написанное;
  • Pandas. Содержит готовые структуры данных. Поможет при реализации сложных операций, которые посредством этого инструмента можно выполнить всего в несколько команд;
  • NumPy. Одна из основных библиотек языка, значительно облегчающая обработку матриц и векторов;
  • SciPy. Улучшенная версия предыдущей библиотеки. Отлично помогает в работе с преобразованиями Фурье, вероятностями и интегралами;
  • Matplotlib. Эта библиотека позволяет создавать с помощью Python различные функции и графики.

Версии Python

«Питон» имел несколько разных версий. Вот их список с кратким перечнем изменений, введенных той или иной версией:

  • Python 0.9.0. Пилотная версия языка;
  • Python 1.0. Эта версия «Питона» привнесла в него возможности функционального программирования, такие, как свертка поиска, лямбда-исчисление, map и filter. Также появилась поддержка комплексных чисел;
  • Python 2.0. Версия внедрила списковое включение и автоматическую сборку мусора. Кроме того, были объединены основные классы и типы, а также созданы генераторы – функции, которые сохраняют внутренне состояние кода;
  • Python 3.0. Существенных изменений эта версия не принесла, так как была направлена на общую оптимизацию языка и его усовершенствование. Ее ключевой особенностью стало отсутствие совместимости с более ранними версиями «Питона»;

Изучение

Python не сложен в изучении. Это вызвано следующими факторами:

  • Язык имеет очень простую, минималистичную семантику;
  • У «Питона» большое сообщество пользователей, следовательно, интересующий новичка вопрос всегда получит ответ, если его задать на одном из форумов, посвященных языку;
  • Python имеет обширную техническую и учебную документацию;
  • Существуют сборники практических заданий, содержащие практические задачи по «Питону» для учеников. Это очень помогает в освоении языка.

Кстати: Для изучения «Питона» надо знать английский хотя бы на начальном уровне, поскольку большая часть учебников и инструкций написана именно на нем. Кроме того, большая часть «питоновских» форумов – англоязычные.

Плюсы и минусы Python

К плюсам языка можно отнести:

  • Простота и, как следствие, быстрое написание кода и его хорошая читаемость;
  • Многофункциональность;
  • Возможность разработки на всех существующих платформах;
  • Наличие большого числа библиотек;

Однако «Питону» присущи и недостатки:

  • Язык требователен к ресурсам компьютера и сильно его нагружает, как следствие – компиляция кода, его тестирование и отладка занимают довольно много времени;
  • Из-за того, что принцип жесткой типизации имеет исключения, иногда при написании больших объемов кода возникает путаница.

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

12 ответов
Как я могу установить MySQLdb модуль для Python с помощью pip?
16 сен. 2014, в 08:59
7 ответов
Я хотел бы знать, каковы все возможные значения для аргумента часового пояса в библиотеке Python Pytz. Как это сделать? РЕШЕНИЕ for tz in pytz.all_timezones: print tz Africa/Abidjan Africa/Accra Africa/Addis_Ababa Africa/Algiers Africa/Asmara Africa/Asmera Africa/Bamako Africa/Bangui Africa/...
pytz
13 дек. 2012, в 19:24
20 ответов
Я пытаюсь исправить один из моих виртуальных пользователей - я хотел бы, чтобы reset все установленные библиотеки возвращались к тем, которые соответствуют производству. Есть ли быстрый и простой способ сделать это с помощью pip?
28 июнь 2012, в 15:34
9 ответов
Когда мы добавляем поле базы данных в django, мы обычно пишем models.CharField(max_length=100, null=True, blank=True). То же самое делается с ForeignKey, DecimalField и т.д. Какова основная разница в том, что null=True только blank=True только null=True, blank=True относительно разных (CharField,...
django-models
22 дек. 2011, в 18:40
25 ответов
Мне нужно использовать Python и Django для нашего заявление. Поэтому у меня есть две версииPython, 2.6 и 2.7. Теперь я установилDjango. Я могу запустить образец приложения для тестированияDjango succesfuly. Но как я могу убедиться, чтоDjango использует версию 2.6 или 2.7 и какую версию модулей испол...
24 июнь 2011, в 12:53
7 ответов
Я пытаюсь установить версию 1.2.2 адаптера MySQL_python, используя новый virtualenv, созданный с помощью параметра --no-site-packages. Текущая версия, показанная в PyPi, 1.2.3. Есть ли способ установить более старую версию? Я нашел статью, в которой говорится, что это должно сделать это: pip install...
pip
mysql-python
pypi
07 март 2011, в 23:34
22 ответа
Это очень обсуждаемая проблема для пользователей OSX 10.6, но я не смог найти решение, которое работает. Здесь моя настройка: Python 2.6.1 64bit Django 1.2.1 MySQL 5.1.47 osx10.6 64bit Я создаю virtualenvwrapper с --no-site-пакетами, а затем установлен Django. Когда я активирую virtualenv и запускаю...
virtualenv
virtualenvwrapper
01 июнь 2010, в 18:34
14 ответов
Я пытаюсь преобразовать ответ Ajax на стороне сервера script в Django HttpResponse, но, видимо, он не работает. Это серверная сторона script: /* RECEIVE VALUE */ $validateValue=$_POST['validateValue']; $validateId=$_POST['validateId']; $validateError=$_POST['validateError']; /* RETURN VALUE */ $arr...
11 март 2010, в 19:37
27 ответов
Итак, я начал изучать код Python и позже Django. В первый раз было трудно смотреть на трассировки и фактически выяснить, что я сделал не так, и где была синтаксическая ошибка. Некоторое время прошло и в пути, похоже, у меня есть рутина в отладке моего кода Django. Поскольку это было сделано в начале...
debugging
13 июль 2009, в 07:10
31 ответ
Я создаю веб-приложение с Django. Причины, по которым я выбрал Django, были следующими: Я хотел работать со свободными/открытыми инструментами. Мне нравится Python и чувствую, что это "долгосрочный" язык, тогда как в отношении Ruby я не был уверен, и PHP казался огромной проблемой для изучения. Я...
web-applications
scalability
20 май 2009, в 06:19
11 ответов
В Django-модели QuerySets я вижу, что для сравнительных значений есть __gt и __lt, но есть ли __ne/!=/<> ( не равно?) Я хочу отфильтровать с помощью не равно: Пример: Model: bool a; int x; Я хочу results = Model.objects.exclude(a=true, x!=5) != - неправильный синтаксис. Я пробовал _...
django-models
django-queryset
26 март 2009, в 20:17
22 ответа
Я работаю над веб-приложением, используя Django, и мне любопытно, есть ли способ запланировать выполнение задания периодически. В основном я просто хочу запускать базу данных и делать некоторые вычисления/обновления на регулярной основе, но я не могу найти никакой документации по этому поводу. Кто-н...
web-applications
scheduled-tasks
21 фев. 2009, в 18:02
8 ответов
Когда я читаю код Django, я часто вижу в моделях то, что называется "slug". Я не совсем уверен, что это такое, но я знаю, что он имеет какое-то отношение к URL-адресам. Как и когда эта пуля должна использоваться? (Я прочитал его определение в этот глоссарий.)...
django-models
slug
09 янв. 2009, в 04:40
10 ответов
При отладке PHP я часто считаю полезным просто вставить var_dump() в мой код, чтобы показать мне, что такое переменная, какова его ценность, и то же самое для всего, что она содержит. Что такое хороший эквивалент Python для этого?
debugging
20 дек. 2008, в 23:29
21 ответ
Как подключиться к базе данных MySQL с помощью программы python?
16 дек. 2008, в 22:48
Наверх
Меню