Начало работы с языком Python

Download python eBook

замечания

Логотип Python
Python
- широко используемый язык программирования. Это:

  • Высокий уровень : Python автоматизирует операции низкого уровня, такие как управление памятью. Это оставляет программиста с меньшим контролем, но имеет много преимуществ, включая читаемость кода и минимальные выражения кода.

  • Универсальный : Python построен для использования во всех контекстах и ​​средах. Примером для языка общего пользования является PHP: он специально разработан как скриптовый язык для веб-разработки на стороне сервера. Напротив, Python может использоваться для веб-разработки на стороне сервера, но также для создания настольных приложений.

  • Динамически типизируется : каждая переменная в Python может ссылаться на любые типы данных. Одно выражение может оценивать данные разных типов в разное время. В связи с этим возможен следующий код:

    if something:
        x = 1
    else:
        x = 'this is a string'
    print(x)
    
  • Сильно напечатан : во время выполнения программы вам не разрешено делать что-либо, что несовместимо с типом данных, с которыми вы работаете. Например, нет скрытых преобразований от строк к числам; строка, сделанная из цифр, никогда не будет считаться номером, если вы не решите ее явно:

    if something:
        x = 1
    else:
        x = 'this is a string'
    print(x)
    
  • Начинающий дружелюбный :) : Синтаксис и структура Python очень интуитивно понятны. Он является высокоуровневым и предоставляет конструкции, предназначенные для написания четких программ как в маленьком, так и в крупном масштабе. Python поддерживает несколько парадигм программирования, включая объектно-ориентированное, императивное и функциональное программирование или процедурные стили. Он имеет большую, всеобъемлющую стандартную библиотеку и множество простых в установке сторонних библиотек.

Его принципы дизайна изложены в Zen of Python .

В настоящее время существуют две основные ветви релиза Python, которые имеют некоторые существенные отличия. Python 2.x - это устаревшая версия, хотя она по-прежнему широко используется. Python 3.x создает набор несовместимых в обратную сторону изменений, которые направлены на сокращение дублирования функций. Чтобы помочь решить, какая версия лучше всего подходит вам, см. Эту статью .

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

Существует одна официальная реализация языка, предоставляемого Python.org, обычно называемого CPython, и нескольких альтернативных реализаций языка на других платформах времени исполнения. К ним относятся IronPython (под управлением Python на платформе .NET), Jython (в среде исполнения Java) и PyPy (реализация Python в самом подмножестве).

Версии

Python 3.x

Версия Дата выхода
[3,7] 2017-05-08
3,6 2016-12-23
3,5 2015-09-13
3,4 2014-03-17
3,3 2012-09-29
3,2 2011-02-20
3,1 2009-06-26
3.0 2008-12-03

Python 2.x

Версия Дата выхода
2,7 2010-07-03
2,6 2008-10-02
2.5 2006-09-19
2,4 2004-11-30
2,3 2003-07-29
2,2 2001-12-21
2,1 2001-04-15
2,0 2000-10-16

Начиная

Python - широко используемый высокоуровневый язык программирования для программирования общего назначения, созданный Guido van Rossum и впервые выпущенный в 1991 году. Python имеет динамическую систему типов и автоматическое управление памятью и поддерживает несколько программных парадигм, включая объектно-ориентированные, функционального программирования и процедурных стилей. Он имеет большую и всеобъемлющую стандартную библиотеку.

В настоящее время активно используются две основные версии Python:

  • Python 3.x является текущей версией и находится в активной разработке.
  • Python 2.x является устаревшей версией и будет получать только обновления для системы безопасности до 2020 года. Никаких новых функций не будет. Обратите внимание, что многие проекты по-прежнему используют Python 2, хотя переход на Python 3 становится проще.

Вы можете скачать и установить либо версию Python здесь . См. Python 3 и Python 2 для сравнения между ними. Кроме того, некоторые сторонние поставщики предлагают повторно упакованные версии Python, которые добавляют часто используемые библиотеки и другие функции для облегчения настройки для случаев общего использования, таких как математика, анализ данных или научное использование. См. Список на официальном сайте .

Проверьте, установлен ли Python

Чтобы убедиться, что Python установлен правильно, вы можете убедиться, что, выполнив следующую команду в своем любимом терминале (если вы используете ОС Windows, вам нужно добавить путь к python в переменную окружения, прежде чем использовать его в командной строке):

$ python --version
 
Python 3.x 3.0

Если у вас установлен Python 3 , и это ваша версия по умолчанию (см. Раздел «Устранение неполадок» ), вы должны увидеть что-то вроде этого:

$ python --version
 
Python 2.x 2.7

Если у вас установлен Python 2 , и это ваша версия по умолчанию (см. Раздел « Поиск и устранение неисправностей» ), вы должны увидеть что-то вроде этого:

$ python --version
 

Если вы установили Python 3, но $ python --version выводит версию Python 2, у вас также установлен Python 2. Это часто бывает в MacOS и во многих дистрибутивах Linux. $ python3 этого используйте $ python3 чтобы явно использовать интерпретатор Python 3.

Привет, мир в Python, используя IDLE


IDLE - простой редактор для Python, который поставляется вместе с Python.

Как создать программу Hello, World в IDLE

  • Откройте IDLE в вашей системе выбора.
    • В старых версиях Windows его можно найти в разделе « All Programs в меню «Windows».
    • В Windows 8+ найдите IDLE или найдите его в приложениях, присутствующих в вашей системе.
    • В системах на основе Unix (включая Mac) вы можете открыть его из оболочки, набрав $ idle python_file.py .
  • Он откроет оболочку с параметрами вверху.

В оболочке есть подсказка из трех прямоугольных скобок:

$ python --version
 

Теперь напишите в подсказке следующий код:

$ python --version
 

Нажмите Enter .

$ python --version
 

Файл Hello World Python

Создайте новый файл hello.py который содержит следующую строку:

Python 3.x 3.0
$ python --version
 
Python 2.x 2.6

Вы можете использовать функцию print Python 3 в Python 2 со следующим оператором import :

$ python --version
 

Python 2 имеет ряд функций, которые могут быть импортированы из Python 3 с __future__ модуля __future__ , как описано здесь .

Python 2.x 2.7

Если вы используете Python 2, вы также можете ввести строку ниже. Обратите внимание, что это недействительно в Python 3 и, следовательно, не рекомендуется, потому что это уменьшает совместимость кода с перекрестной версией.

$ python --version
 

В своем терминале перейдите в каталог, содержащий файл hello.py .

Введите python hello.py , затем нажмите клавишу Enter .

$ python --version
 

Вы должны увидеть Hello, World напечатанную на консоли.

Вы также можете заменить hello.py на путь к вашему файлу. Например, если у вас есть файл в вашем домашнем каталоге, а ваш пользователь «пользователь» в Linux, вы можете ввести python /home/user/hello.py .

Запустить интерактивную оболочку Python

Выполняя (запуская) команду python в вашем терминале, вы получаете интерактивную оболочку Python. Это также известно как Python Interpreter или REPL (для «Read Evaluate Print Loop»).

$ python --version
 

Если вы хотите запустить Python 3 из своего терминала, выполните команду python3 .

$ python --version
 

Кроме того, запустите интерактивную подсказку и загрузите файл с помощью python -i <file.py> .

В командной строке выполните:

$ python --version
 

Существует несколько способов закрыть оболочку Python:

$ python --version
 

или же

$ python --version
 

Кроме того, CTRL + D закроет оболочку и вернет вас в командную строку вашего терминала.

Если вы хотите отменить команду, находящуюся в середине ввода и вернуться к чистой командной строке, оставаясь внутри оболочки Interpreter, используйте CTRL + C.

Попробуйте интерактивную оболочку Python в Интернете .

Другие онлайн-оболочки

Различные веб-сайты предоставляют онлайн-доступ к оболочкам Python.

Онлайн-оболочки могут быть полезны для следующих целей:

  • Запустите небольшой фрагмент кода с компьютера, на котором отсутствует установка python (смартфоны, планшеты и т. Д.).
  • Изучайте базовый Python.
  • Решите проблемы онлайн-судьи.

Примеры:

Отказ от ответственности: автор (ы) документации не связаны ни с какими ресурсами, перечисленными ниже.

Выполнять команды как строку

Python может быть передан произвольным кодом в виде строки в оболочке:

$ python --version
 

Это может быть полезно при объединении результатов скриптов вместе в оболочке.

Оболочки и последующие

Управление пакетами. Рекомендованным PyPA инструментом для установки пакетов Python является PIP . Для установки в командной строке выполните команду pip install <the package name> . Например, pip install numpy . (Примечание. В окнах вы должны добавить pip в переменные среды PATH. Чтобы этого избежать, используйте python -m pip install <the package name> ).

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

Программы. Для долговременного хранения вы можете сохранять контент в .py-файлах и редактировать / выполнять их как скрипты или программы с помощью внешних инструментов, таких как оболочка, IDE (например, PyCharm ), ноутбуки Jupyter и т. Д. Промежуточные пользователи могут использовать эти инструменты; однако способы, описанные здесь, достаточны для начала.

Наставник Python позволяет вам пройти через код Python, чтобы вы могли визуализировать, как будет работать программа, и поможет вам понять, где ваша программа пошла не так.

PEP8 определяет правила форматирования кода Python. Очень важно правильно форматировать код, чтобы вы могли быстро прочитать, что делает код.

Отступ блока

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

Python использует символ двоеточия ( : ) и отступы для показа , где блоки кода начинаются и заканчивается (Если вы пришли из другого языка, не путайте это с каким - то образом быть связаны с троичным оператором ). То есть блоки в Python, такие как функции, петля, if пункты и другие конструкции, не имеют идентификаторов концовки. Все блоки начинаются с двоеточия, а затем содержат отступы под ним.

Например:

def my_function():    # This is a function definition. Note the colon (:)
    a = 2             # This line belongs to the function because it's indented
    return a          # This line also belongs to the same function
print(my_function())  # This line is OUTSIDE the function block
 

или же

def my_function():    # This is a function definition. Note the colon (:)
    a = 2             # This line belongs to the function because it's indented
    return a          # This line also belongs to the same function
print(my_function())  # This line is OUTSIDE the function block
 

Блоки, которые содержат ровно один однострочный оператор, могут быть помещены в одну строку, хотя эта форма обычно не считается хорошим стилем:

def my_function():    # This is a function definition. Note the colon (:)
    a = 2             # This line belongs to the function because it's indented
    return a          # This line also belongs to the same function
print(my_function())  # This line is OUTSIDE the function block
 

Попытка сделать это более чем с одним заявлением не будет работать:

def my_function():    # This is a function definition. Note the colon (:)
    a = 2             # This line belongs to the function because it's indented
    return a          # This line also belongs to the same function
print(my_function())  # This line is OUTSIDE the function block
 

Пустой блок вызывает IndentationError . Используйте pass (команда, которая ничего не делает), когда у вас есть блок без содержимого:

def my_function():    # This is a function definition. Note the colon (:)
    a = 2             # This line belongs to the function because it's indented
    return a          # This line also belongs to the same function
print(my_function())  # This line is OUTSIDE the function block
 

Пробелы против вкладок

Короче: всегда используйте 4 пробела для отступов.

Использование вкладок исключительно возможно, но PEP 8 , руководство по стилю для кода Python, указывает, что пробелы предпочтительнее.

Python 3.x 3.0

Python 3 запрещает смешивать использование вкладок и пробелов для отступов. В этом случае генерируется ошибка времени компиляции: Inconsistent use of tabs and spaces in indentation а программа не запускается.

Python 2.x 2.7

Python 2 позволяет смешивать вкладки и пробелы в отступе; это сильно обескураживает. Символ табуляции завершает предыдущий отступ, чтобы быть кратным 8 пробелам . Поскольку обычно редакторы настроены на отображение вкладок в количестве, равном 4 местам, это может вызвать тонкие ошибки.

Цитируя PEP 8 :

При вызове интерпретатора командной строки Python 2 с параметром -t он выдает предупреждения о коде, который незаконно смешивает вкладки и пробелы. При использовании -tt эти предупреждения становятся ошибками. Эти варианты настоятельно рекомендуется!

У многих редакторов есть конфигурация «tabs to spaces». При настройке редактора следует различать символ табуляции ('\ t') и клавишу Tab .

  • Вкладка символ должен быть настроен , чтобы показать 8 пробелов, чтобы соответствовать семантике языка - по крайней мере , в тех случаях , когда (случайно) смешанные отступы возможно. Редакторы также могут автоматически преобразовывать символ табуляции в пробелы.
  • Однако было бы полезно настроить редактор так, чтобы нажатие клавиши Tab вставляло 4 пробела вместо того, чтобы вставлять символ табуляции.

Исходный код Python, написанный сочетанием вкладок и пробелов, или с нестандартным числом пространств отступа можно сделать pep8-совместимым с помощью autopep8 . (Менее мощная альтернатива поставляется с большинством установок Python: reindent.py )

Встроенные модули и функции

Модуль - это файл, содержащий определения и утверждения Python. Функция - это фрагмент кода, который выполняет некоторую логику.

>>> pow(2,3)    #8
 

Чтобы проверить встроенную функцию в python, мы можем использовать dir(). Если вызывается без аргумента, верните имена в текущую область. В противном случае верните алфавитный список имен, содержащих (некоторые) атрибут данного объекта и атрибуты, доступные из него.

>>> pow(2,3)    #8
 

Чтобы узнать функциональность любой функции, мы можем использовать встроенную функцию help .

>>> pow(2,3)    #8
 

Встроенные модули содержат дополнительные функции. Например, чтобы получить квадратный корень из числа, нам нужно включить math модуль.

>>> pow(2,3)    #8
 

Чтобы узнать все функции в модуле, мы можем назначить список функций переменной, а затем распечатать переменную.

>>> pow(2,3)    #8
 

кажется __doc__ полезно предоставить некоторую документацию, например, в функциях

>>> pow(2,3)    #8
 

В дополнение к функциям документация также может предоставляться в модулях. Итак, если у вас есть файл helloWorld.py вот так:

>>> pow(2,3)    #8
 

Вы можете получить доступ к своим docstrings следующим образом:

>>> pow(2,3)    #8
 
  • Для любого пользовательского типа, его атрибутов, атрибутов его класса и рекурсивно атрибуты базовых классов его класса можно получить с помощью dir ()
>>> pow(2,3)    #8
 

Любой тип данных может быть просто преобразован в строку с помощью встроенной функции str . Эта функция вызывается по умолчанию, когда тип данных передается для print

>>> pow(2,3)    #8
 

Типы коллекций

В Python существует несколько типов коллекций. Хотя типы, такие как int и str содержат одно значение, типы коллекции содержат несколько значений.

Списки

Тип list вероятно, является наиболее часто используемым типом коллекции в Python. Несмотря на свое имя, список больше похож на массив на других языках, в основном на JavaScript. В Python список представляет собой просто упорядоченный набор действительных значений Python. Список может быть создан путем включения значений, разделенных запятыми, в квадратных скобках:

int_list = [1, 2, 3]
string_list = ['abc', 'defghi']
 

Список может быть пустым:

int_list = [1, 2, 3]
string_list = ['abc', 'defghi']
 

Элементы списка не ограничены одним типом данных, что имеет смысл, учитывая, что Python является динамическим языком:

int_list = [1, 2, 3]
string_list = ['abc', 'defghi']
 

Список может содержать другой список:

int_list = [1, 2, 3]
string_list = ['abc', 'defghi']
 

Элементы списка могут быть доступны через индекс или числовое представление их позиции. Списки в Python имеют нулевое индексирование, означающее, что первый элемент в списке имеет индекс 0, второй элемент - в индексе 1 и так далее:

int_list = [1, 2, 3]
string_list = ['abc', 'defghi']
 

Индексы также могут быть отрицательными, что означает подсчет с конца списка ( -1 - индекс последнего элемента). Итак, используя список из приведенного выше примера:

int_list = [1, 2, 3]
string_list = ['abc', 'defghi']
 

Списки изменяются, поэтому вы можете изменить значения в списке:

int_list = [1, 2, 3]
string_list = ['abc', 'defghi']
 

Кроме того, можно добавлять и / или удалять элементы из списка:

Добавить объект в конец списка с помощью L.append(object) , возвращает None .

int_list = [1, 2, 3]
string_list = ['abc', 'defghi']
 

Добавьте новый элемент для отображения по определенному индексу. L.insert(index, object)

int_list = [1, 2, 3]
string_list = ['abc', 'defghi']
 

Удалите первое вхождение значения с L.remove(value) , возвращает None

int_list = [1, 2, 3]
string_list = ['abc', 'defghi']
 

Получить индекс в списке первого элемента, значение которого равно x. Он покажет ошибку, если такого элемента нет.

int_list = [1, 2, 3]
string_list = ['abc', 'defghi']
 

Подсчитать длину списка

int_list = [1, 2, 3]
string_list = ['abc', 'defghi']
 

подсчет количества элементов в списке

int_list = [1, 2, 3]
string_list = ['abc', 'defghi']
 

Изменить список

int_list = [1, 2, 3]
string_list = ['abc', 'defghi']
 

Удалите и верните элемент по индексу (по умолчанию последний элемент) с L.pop([index]) , возвращает элемент

int_list = [1, 2, 3]
string_list = ['abc', 'defghi']
 

Вы можете перебирать элементы списка, как показано ниже:

int_list = [1, 2, 3]
string_list = ['abc', 'defghi']
 

Кортеж

tuple похож на список, за исключением того, что он является фиксированным и неизменным. Таким образом, значения в кортеже не могут быть изменены, а значения не будут добавлены или исключены из кортежа. Кортежи обычно используются для небольших коллекций значений, которые не нужно изменять, например, IP-адрес и порт. Кортежи представлены скобками вместо квадратных скобок:

int_list = [1, 2, 3]
string_list = ['abc', 'defghi']
 

Те же правила индексирования списков также применяются к кортежам. Кортежи также могут быть вложенными, и значения могут быть действительными действительными действительными Python.

Кортеж с одним членом должен быть определен (обратите внимание на запятую) следующим образом:

int_list = [1, 2, 3]
string_list = ['abc', 'defghi']
 

или же

int_list = [1, 2, 3]
string_list = ['abc', 'defghi']
 

или просто используя синтаксис tuple

int_list = [1, 2, 3]
string_list = ['abc', 'defghi']
 

Словари

dictionary в Python представляет собой набор пар ключ-значение. Словарь окружен фигурными фигурными скобками. Каждая пара разделяется запятой, а ключ и значение разделяются двоеточием. Вот пример:

int_list = [1, 2, 3]
string_list = ['abc', 'defghi']
 

Чтобы получить значение, обратитесь к нему по его ключу:

int_list = [1, 2, 3]
string_list = ['abc', 'defghi']
 

Вы также можете получить все ключи в словаре, а затем перебрать их:

int_list = [1, 2, 3]
string_list = ['abc', 'defghi']
 

Словари сильно напоминают синтаксис JSON. json модуль json в стандартной библиотеке Python может использоваться для преобразования между JSON и словарями.

задавать

set представляет собой набор элементов без повторов и без порядка вставки, но отсортированный порядок. Они используются в ситуациях, когда важно, чтобы некоторые вещи были сгруппированы вместе, а не какой порядок они были включены. Для больших групп данных гораздо быстрее проверить, находится ли элемент в set чем он должен делать то же самое для list .

Определение set очень похоже на определение dictionary :

int_list = [1, 2, 3]
string_list = ['abc', 'defghi']
 

Или вы можете построить set используя существующий list :

int_list = [1, 2, 3]
string_list = ['abc', 'defghi']
 

Проверьте членство в set с использованием in :

int_list = [1, 2, 3]
string_list = ['abc', 'defghi']
 

Вы можете перебирать set точно так же, как и список, но помните: значения будут в произвольном порядке реализации.

defaultdict

defaultdict - это словарь со значением по умолчанию для ключей, поэтому ключи, для которых не было явно определено значение, могут быть доступны без ошибок. defaultdict особенно полезен, когда значения в словаре представляют собой коллекции (списки, dicts и т. д.) в том смысле, что его не нужно инициализировать каждый раз, когда используется новый ключ.

Значение defaultdict никогда не вызовет KeyError. Любой ключ, который не существует, возвращает значение по умолчанию.

Например, рассмотрим следующий словарь

int_list = [1, 2, 3]
string_list = ['abc', 'defghi']
 

Если мы попытаемся получить доступ к несуществующему ключу, python возвращает нам ошибку следующим образом

int_list = [1, 2, 3]
string_list = ['abc', 'defghi']
 

Давайте попробуем с defaultdict . Его можно найти в модуле коллекций.

int_list = [1, 2, 3]
string_list = ['abc', 'defghi']
 

То, что мы здесь сделали, - установить значение по умолчанию ( Boston ), если ключ-ключ не существует. Теперь заселите диктофон, как раньше:

int_list = [1, 2, 3]
string_list = ['abc', 'defghi']
 

Если мы попытаемся получить доступ к dict с несуществующим ключом, python вернет нам значение по умолчанию, то есть Boston

int_list = [1, 2, 3]
string_list = ['abc', 'defghi']
 

и возвращает созданные значения для существующего ключа, как обычный dictionary

int_list = [1, 2, 3]
string_list = ['abc', 'defghi']
 

Создание модуля

Модуль - это импортируемый файл, содержащий определения и утверждения.

Модуль можно создать, создав файл .py .

# hello.py
def say_hello():
    print("Hello!")
 

Функции в модуле можно использовать, импортируя модуль.

Для модулей, которые вы создали, они должны быть в том же каталоге, что и файл, в который вы их импортируете. (Однако вы также можете поместить их в каталог Python lib с предустановленными модулями, но по возможности следует избегать).

# hello.py
def say_hello():
    print("Hello!")
 

Модули могут быть импортированы другими модулями.

# hello.py
def say_hello():
    print("Hello!")
 

Конкретные функции модуля можно импортировать.

# hello.py
def say_hello():
    print("Hello!")
 

Модули могут быть сглажены.

# hello.py
def say_hello():
    print("Hello!")
 

Модуль может быть автономным исполняемым скриптом.

# hello.py
def say_hello():
    print("Hello!")
 

Запустить его!

# hello.py
def say_hello():
    print("Hello!")
 

Если модуль находится внутри каталога и должен быть обнаружен с помощью python, каталог должен содержать файл с именем __init__.py .

Создание переменных и назначение значений

Чтобы создать переменную в Python, все, что вам нужно сделать, это указать имя переменной и присвоить ей значение.

<variable name> = <value>
 

Python использует = для назначения значений переменным. Нет необходимости заранее объявлять переменную (или присваивать ей тип данных), присваивая значение самой переменной, объявляет и инициализирует переменную с этим значением. Невозможно объявить переменную без присвоения ей начального значения.

<variable name> = <value>
 

Переменное назначение работает слева направо. Таким образом, следующее приведет к синтаксической ошибке.

<variable name> = <value>
 

Вы не можете использовать ключевые слова python как допустимое имя переменной. Вы можете увидеть список ключевых слов:

<variable name> = <value>
 

Правила для именования переменных:

  1. Имена переменных должны начинаться с буквы или подчеркивания.
<variable name> = <value>
 
  1. Остальная часть вашего имени переменной может состоять из букв, цифр и символов подчеркивания.
<variable name> = <value>
 
  1. Имена чувствительны к регистру.
<variable name> = <value>
 

Несмотря на то, что нет необходимости указывать тип данных при объявлении переменной в Python, при распределении необходимой области в памяти для переменной интерпретатор Python автоматически выбирает для нее наиболее подходящий встроенный тип :

<variable name> = <value>
 

Теперь вы знаете основы задания, давайте сделаем эту тонкость о назначении в python в сторону.

Когда вы используете = для выполнения операции присваивания, то, что слева от = - это имя для объекта справа. Наконец, what = is присваивает ссылку объекта справа на имя слева.

То есть:

<variable name> = <value>
 

Так, из многих примеров присваивания выше, если мы выбираем pi = 3.14 , то pi этого имя (не имя, так как объект может иметь несколько имен) для объекта 3.14 . Если вы не понимаете что-то ниже, вернитесь к этому вопросу и прочитайте это снова! Кроме того, вы можете взглянуть на это для лучшего понимания.


Вы можете назначить несколько значений нескольким переменным в одной строке. Обратите внимание, что должно быть такое же количество аргументов в правой и левой сторонах оператора = :

<variable name> = <value>
 

Ошибка в последнем примере может быть устранена путем назначения оставшихся значений равным числу произвольных переменных. Эта фиктивная переменная может иметь любое имя, но условно использовать знак подчеркивания ( _ ) для назначения нежелательных значений:

<variable name> = <value>
 

Обратите внимание, что число _ и количество оставшихся значений должны быть равны. В противном случае «слишком много значений для распаковки ошибки» выбрасывается, как указано выше:

<variable name> = <value>
 

Вы также можете назначить одно значение нескольким переменным одновременно.

<variable name> = <value>
 

При использовании такого каскадного назначения важно отметить, что все три переменные a , b и c относятся к одному и тому же объекту в памяти, к объекту int со значением 1. Другими словами, a , b и c представляют собой три разных имени заданный одному и тому же объекту int. Назначение другого объекта одному из них впоследствии не изменяет других, как и ожидалось:

<variable name> = <value>
 

Вышеизложенное также верно для изменяемых типов (например, list , dict и т. Д.), Так же как и для неизменяемых типов (например, int , string , tuple и т. Д.):

<variable name> = <value>
 

Все идет нормально. Что-то немного изменилось, когда дело доходило до модификации объекта (в отличие от назначения имени другому объекту, который мы сделали выше), когда каскадное присвоение используется для изменяемых типов. Взгляните ниже, и вы увидите это из первых рук:

<variable name> = <value>
 

Вложенные списки также действительны в python. Это означает, что список может содержать другой список как элемент.

<variable name> = <value>
 

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

<variable name> = <value>
 

Если это вас беспокоит, подумайте о том, что то, что находится слева от = - это просто имя для объекта. Во- первых вы вызываете int объект со значением 2 , то вы передумали и решили дать имя a a , к string объекту, имеющему значение «Нового значения». Простой, не так ли?

Типы данных

Встроенные типы

Булевы

bool : Логическое значение True или False . Логические операции, такие как and , or , not могут выполняться по булевым.

x or y    # if x is False then y otherwise x 
x and y   # if x is False then x otherwise y
not x     # if x is True then False, otherwise True
 

В Python 2.x и в Python 3.x логическое значение также является int . Тип bool является подклассом типа int а True и False являются его единственными экземплярами:

x or y    # if x is False then y otherwise x 
x and y   # if x is False then x otherwise y
not x     # if x is True then False, otherwise True
 

Если в арифметических операциях используются логические значения, их целочисленные значения ( 1 и 0 для True и False ) будут использованы для возврата целочисленного результата:

x or y    # if x is False then y otherwise x 
x and y   # if x is False then x otherwise y
not x     # if x is True then False, otherwise True
 

чисел

  • int : целое число

    x or y    # if x is False then y otherwise x 
    x and y   # if x is False then x otherwise y
    not x     # if x is True then False, otherwise True
     

    Целые числа в Python имеют произвольные размеры.

    Примечание: в более старых версиях Python был доступен long тип, и это отличалось от int . Они были объединены.

  • float : число с плавающей точкой; точность зависит от реализации и архитектуры системы, для CPython тип данных float соответствует C double.

    x or y    # if x is False then y otherwise x 
    x and y   # if x is False then x otherwise y
    not x     # if x is True then False, otherwise True
     
  • complex : комплексные номера

    x or y    # if x is False then y otherwise x 
    x and y   # if x is False then x otherwise y
    not x     # if x is True then False, otherwise True
     

Операторы < , <= , > и >= будут вызывать исключение TypeError если любой операнд является сложным числом.

Струны

Python 3.x 3.0
  • str : строка в Юникоде . Тип 'hello'
  • bytes : байтовая строка . Тип b'hello'
Python 2.x 2.7
  • str : строка байтов . Тип 'hello'
  • bytes : синоним для str
  • unicode : строка в Юникоде . Тип u'hello'

Последовательности и коллекции

Python различает упорядоченные последовательности и неупорядоченные коллекции (такие как set и dict ).

  • строки ( str , bytes , unicode ) являются последовательностями

  • reversed : обратный порядок str с reversed функцией

    x or y    # if x is False then y otherwise x 
    x and y   # if x is False then x otherwise y
    not x     # if x is True then False, otherwise True
     
  • tuple : упорядоченный набор n значений любого типа ( n >= 0 ).

    x or y    # if x is False then y otherwise x 
    x and y   # if x is False then x otherwise y
    not x     # if x is True then False, otherwise True
     

    Поддерживает индексирование; неизменный; hashable, если все его члены являются хешируемыми

  • list : упорядоченный набор n значений ( n >= 0 )

    x or y    # if x is False then y otherwise x 
    x and y   # if x is False then x otherwise y
    not x     # if x is True then False, otherwise True
     

    Не хешируется; изменчивый.

  • set : неупорядоченный набор уникальных значений. Элементы должны быть хешируемыми .

    x or y    # if x is False then y otherwise x 
    x and y   # if x is False then x otherwise y
    not x     # if x is True then False, otherwise True
     
  • dict : неупорядоченный набор уникальных пар ключ-значение; ключи должны быть хешируемыми .

    x or y    # if x is False then y otherwise x 
    x and y   # if x is False then x otherwise y
    not x     # if x is True then False, otherwise True
     

Объект hashable, если он имеет значение хэша, которое никогда не изменяется в течение его жизненного __hash__() (ему нужен __hash__() ), и его можно сравнить с другими объектами (ему нужен __eq__() ). Объекты Hashable, которые сравнивают равенство, должны иметь одно и то же значение хэш-функции.

Встроенные константы

В сочетании со встроенными типами данных в встроенном пространстве имен имеется небольшое количество встроенных констант:

  • True : истинное значение встроенного типа bool
  • False : ложное значение встроенного типа bool
  • None : Объект singleton используется для обозначения того, что значение отсутствует.
  • Ellipsis или ... : используется в основном Python3 + в любом месте и ограниченное использование в Python2.7 + как часть нотации массива. numpy и связанные с ним пакеты используют это как ссылку «включить все» в массивы.
  • NotImplemented : singleton используется для указания Python, что специальный метод не поддерживает конкретные аргументы, а Python будет пытаться использовать альтернативы, если они доступны.
x or y    # if x is False then y otherwise x 
x and y   # if x is False then x otherwise y
not x     # if x is True then False, otherwise True
 
Python 3.x 3.0

None кого нет естественного заказа. Использование операторов сравнения заказов ( < , <= , >= , > ) больше не поддерживается и будет вызывать TypeError .

Python 2.x 2.7

None всегда меньше любого числа ( None < -32 оценивает значение True ).

Тестирование типа переменных

В python мы можем проверить тип данных объекта с помощью встроенного type функции.

x or y    # if x is False then y otherwise x 
x and y   # if x is False then x otherwise y
not x     # if x is True then False, otherwise True
 

В условных операторах можно проверить тип данных с помощью isinstance . Однако обычно не рекомендуется полагаться на тип переменной.

x or y    # if x is False then y otherwise x 
x and y   # if x is False then x otherwise y
not x     # if x is True then False, otherwise True
 

Для получения информации о различиях между type() и isinstance() read: Различия между isinstance и типом в Python

Чтобы проверить, имеет ли что-то значение NoneType :

x or y    # if x is False then y otherwise x 
x and y   # if x is False then x otherwise y
not x     # if x is True then False, otherwise True
 

Преобразование между типами данных

Вы можете выполнить явное преобразование типов данных.

Например, «123» имеет тип str и может быть преобразован в целое число с использованием функции int .

x or y    # if x is False then y otherwise x 
x and y   # if x is False then x otherwise y
not x     # if x is True then False, otherwise True
 

Преобразование из строки с плавающей точкой, например, «123.456», может быть выполнено с помощью функции float .

x or y    # if x is False then y otherwise x 
x and y   # if x is False then x otherwise y
not x     # if x is True then False, otherwise True
 

Вы также можете конвертировать последовательности или типы коллекций

x or y    # if x is False then y otherwise x 
x and y   # if x is False then x otherwise y
not x     # if x is True then False, otherwise True
 

Явный тип строки при определении литералов

С одним буквенным надписью непосредственно перед кавычками вы можете указать, какую строку вы хотите определить.

  • b'foo bar' : результаты bytes в Python 3, str в Python 2
  • u'foo bar' : результаты str в Python 3, unicode в Python 2
  • 'foo bar' : results str
  • r'foo bar' : результат так называемой сырой строки, где экранирование специальных символов не требуется, все принимается дословно, когда вы ввели
x or y    # if x is False then y otherwise x 
x and y   # if x is False then x otherwise y
not x     # if x is True then False, otherwise True
 

Переменные и неизменяемые типы данных

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

x or y    # if x is False then y otherwise x 
x and y   # if x is False then x otherwise y
not x     # if x is True then False, otherwise True
 

Объект называется неизменяемым, если его нельзя каким-либо образом изменить. Например, целые числа неизменяемы, поскольку их невозможно изменить:

x or y    # if x is False then y otherwise x 
x and y   # if x is False then x otherwise y
not x     # if x is True then False, otherwise True
 

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

Типы данных, экземпляры которых изменяемы, называются изменяемыми типами данных , а также для неизменяемых объектов и типов данных.

Примеры неизменяемых типов данных:

  • int , long , float , complex
  • str
  • bytes
  • tuple
  • frozenset

Примеры изменяемых типов данных:

  • bytearray
  • list
  • set
  • dict

Полезная утилита

Python имеет несколько функций, встроенных в интерпретатор. Если вы хотите получить информацию о ключевых словах, встроенные функции, модули или темы, откройте консоль Python и введите:

>>> help()
 

Вы получите информацию, непосредственно введя ключевые слова:

>>> help()
 

или внутри утилиты:

>>> help()
 

который покажет объяснение:

>>> help()
 

Вы также можете запросить подклассы модулей:

>>> help()
 

Вы можете использовать помощь для доступа к docstrings из разных модулей, которые вы импортировали, например, попробуйте следующее:

>>> help()
 

и вы получите сообщение об ошибке

>>> help()
 

Теперь вы получите список доступных методов в модуле, но только ПОСЛЕ того, как вы его импортировали.

Закрой помощник с quit

IDLE - графический интерфейс Python

IDLE - это интегрированная среда разработки и обучения Python и является альтернативой командной строке. Как следует из названия, IDLE очень полезно для разработки нового кода или обучения python. В Windows это поставляется с интерпретатором Python, но в других операционных системах вам может потребоваться установить его через диспетчер пакетов.

Основными целями IDLE являются:

  • Многострочный текстовый редактор с подсветкой синтаксиса, автозаполнением и интеллектуальным отступом
  • Оболочка Python с подсветкой синтаксиса
  • Интегрированный отладчик с степпингом, постоянными точками останова и видимостью стека вызовов
  • Автоматический отступ (полезно для начинающих, изучающих отступ Python)
  • Сохраняя программу Python как .py-файлы, запустите их и отредактируйте позже в любом из них с помощью IDLE.

В IDLE нажмите F5 или run Python Shell чтобы запустить интерпретатор. Использование IDLE может быть лучшим опытом обучения для новых пользователей, потому что код интерпретируется как пользователь пишет.

Обратите внимание, что существует множество альтернатив, см., Например, эту дискуссию или этот список .

Поиск проблемы

  • Windows

    Если вы работаете в Windows, команда по умолчанию - python . Если вы получаете ошибку "'python' is not recognized" , наиболее вероятной причиной является то, что местоположение Python не входит в PATH среды PATH вашей системы. Доступ к нему можно получить, щелкнув правой кнопкой мыши на «Мой компьютер» и выбрав «Свойства» или перейдя в «Система» через «Панель управления». Нажмите «Дополнительные системные настройки», а затем «Переменные среды ...». Измените переменную PATH чтобы включить каталог вашей установки Python, а также папку сценария (обычно C:\Python27;C:\Python27\Scripts ). Для этого требуются административные привилегии и может потребоваться перезагрузка.

    При использовании нескольких версий Python на одном и том же компьютере возможным решением является переименование одного из файлов python.exe . Например, именование одной версии python27.exe приведет к тому, что python27 станет командой Python для этой версии.

    Вы также можете использовать Python Launcher для Windows, который доступен через установщик и поставляется по умолчанию. Он позволяет вам выбрать версию Python для запуска с помощью py -[xy] вместо python[xy] . Вы можете использовать последнюю версию Python 2, запустив скрипты с py -2 и последней версией Python 3, запустив скрипты с py -3 .

  • Debian / Ubuntu / MacOS

    В этом разделе предполагается, что местоположение исполняемого файла python добавлено в PATH среды PATH .

    Если вы находитесь в Debian / Ubuntu / MacOS, откройте терминал и введите python для Python 2.x или python3 для Python 3.x.

    Введите, which python будет видеть, какой интерпретатор Python будет использоваться.

  • Arch Linux

    По умолчанию Python на Arch Linux (и потомки) - это Python 3, поэтому используйте python или python3 для Python 3.x и python2 для Python 2.x.

  • Другие системы

    Python 3 иногда связан с python вместо python3 . Чтобы использовать Python 2 в этих системах, где он установлен, вы можете использовать python2 .

Установка Python 2.7.x и 3.x

Примечание . Следующие инструкции написаны для Python 2.7 (если не указано): инструкции для Python 3.x аналогичны.

WINDOWS

Сначала загрузите последнюю версию Python 2.7 с официального сайта ( https://www.python.org/downloads/) . Версия предоставляется как пакет MSI. Чтобы установить его вручную, просто дважды щелкните файл.

По умолчанию Python устанавливается в каталог:

 C:\Python27\
 

Предупреждение: установка автоматически не изменяет переменную среды PATH.

Предполагая, что ваша установка Python находится в C: \ Python27, добавьте это в свой PATH:

 C:\Python27\
 

Теперь, чтобы проверить правильность установки Python, напишите в cmd:

 C:\Python27\
 

Python 2.x и 3.x Side-By-Side

Чтобы установить и использовать оба Python 2.x и 3.x рядом с Windows-машиной:

  1. Установите Python 2.x с помощью установщика MSI.

    • Убедитесь, что Python установлен для всех пользователей.
    • Необязательно: добавьте Python в PATH чтобы сделать Python 2.x доступным из командной строки с помощью python .
  2. Установите Python 3.x с помощью соответствующего установщика.

    • Опять же, убедитесь, что Python установлен для всех пользователей.
    • Необязательно: добавьте Python в PATH чтобы сделать Python 3.x доступным из командной строки с помощью python . Это может переопределить настройки Python 2.x PATH , поэтому дважды проверьте свой PATH и убедитесь, что он настроен на ваши предпочтения.
    • Обязательно установите py launcher установку py launcher для всех пользователей.

Python 3 установит пусковую установку Python, которая может использоваться для запуска Python 2.x и Python 3.x взаимозаменяемо из командной строки:

 C:\Python27\
 

Чтобы использовать соответствующую версию pip для конкретной версии Python, используйте:

 C:\Python27\
 

LINUX

Последние версии CentOS, Fedora, Redhat Enterprise (RHEL) и Ubuntu поставляются с Python 2.7.

Чтобы установить Python 2.7 на Linux вручную, просто выполните следующие действия в терминале:

 C:\Python27\
 

Также добавьте путь к новому питону в переменной среды PATH. Если новый python находится в /root/python-2.7.X тогда выполните export PATH = $PATH:/root/python-2.7.X

Теперь, чтобы проверить правильность установки Python, напишите в терминале:

 C:\Python27\
 

Ubuntu (From Source)

Если вам нужен Python 3.6, вы можете установить его из источника, как показано ниже (Ubuntu 16.10 и 17.04 имеют версию 3.6 в универсальном репозитории). Ниже приведены шаги для Ubuntu 16.04 и более низких версий:

 C:\Python27\
 

Macos

Как мы говорим, macOS поставляется с Python 2.7.10, но эта версия устарела и немного изменена из обычного Python.

Версия Python, поставляемая с OS X, отлично подходит для обучения, но это не хорошо для разработки. Версия, поставляемая с OS X, может быть устаревшей из официальной текущей версии Python, которая считается стабильной производственной версией. ( источник )

Установить Homebrew :

 C:\Python27\
 

Установите Python 2.7:

 C:\Python27\
 

Для Python 3.x используйте команду brew install python3 .

Установка внешних модулей с помощью pip

pip - ваш друг, когда вам нужно установить любой пакет из множества вариантов, доступных в индексе пакета python (PyPI). pip уже установлен, если вы используете Python 2> = 2.7.9 или Python 3> = 3.4, загруженный с python.org. Для компьютеров под управлением Linux или другого * nix с собственным менеджером пакетов, pip часто должен быть установлен вручную.

В случаях, когда установлены оба Python 2 и Python 3, pip часто ссылается на Python 2 и pip3 на Python 3. Использование pip будет устанавливать пакеты только для Python 2, а pip3 будет устанавливать пакеты только для Python 3.

Поиск / установка пакета

Поиск пакета так же просто, как ввод текста

$ pip search <query>
# Searches for packages whose name or summary contains <query>
 

Установка пакета так же проста, как набирать (в терминале / командной строке, а не в интерпретаторе Python)

$ pip search <query>
# Searches for packages whose name or summary contains <query>
 

где xxx - номер версии пакета, который вы хотите установить.

Когда ваш сервер находится за прокси-сервером, вы можете установить пакет, используя следующую команду:

$ pip search <query>
# Searches for packages whose name or summary contains <query>
 

Обновление установленных пакетов

Когда появляются новые версии установленных пакетов, они автоматически не устанавливаются в вашу систему. Чтобы узнать, какой из установленных пакетов устарел, запустите:

$ pip search <query>
# Searches for packages whose name or summary contains <query>
 

Чтобы обновить использование определенного пакета

$ pip search <query>
# Searches for packages whose name or summary contains <query>
 

Обновление всех устаревших пакетов не является стандартной функциональностью pip .

Модернизация

Вы можете обновить существующую установку на пике, используя следующие команды:

  • В Linux или macOS X:

    $ pip search <query>
    # Searches for packages whose name or summary contains <query>
     

    Возможно, вам понадобится использовать sudo with pip в некоторых Linux-системах

  • В Windows:

    $ pip search <query>
    # Searches for packages whose name or summary contains <query>
     

    или же

    $ pip search <query>
    # Searches for packages whose name or summary contains <query>
     

Для получения дополнительной информации о пипе читайте здесь .

Строковая функция - str () и repr ()

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

repr(x) вызывает x.__repr__() : представление x . eval обычно преобразует результат этой функции обратно в исходный объект.

str(x) вызывает x.__str__() : человекочитаемая строка, описывающая объект. Это может привести к некоторым техническим деталям.


магнезии ()

Для многих типов эта функция пытается вернуть строку, которая даст объект с тем же значением при передаче в eval() . В противном случае представление представляет собой строку, заключенную в угловые скобки, которая содержит имя типа объекта вместе с дополнительной информацией. Это часто включает имя и адрес объекта.

ул ()

Для строк это возвращает строку. Разница между этим и представлением repr(object) заключается в том, что str(object) не всегда пытается вернуть строку, приемлемую для eval() . Скорее, его цель - вернуть печатную или «удобочитаемую» строку. Если аргумент не задан, это возвращает пустую строку, '' .


Пример 1:

s = """w'o"w"""
repr(s) # Output: '\'w\\\'o"w\''  
str(s)  # Output: 'w\'o"w'
eval(str(s)) == s  # Gives a SyntaxError 
eval(repr(s)) == s # Output: True
 

Пример 2:

s = """w'o"w"""
repr(s) # Output: '\'w\\\'o"w\''  
str(s)  # Output: 'w\'o"w'
eval(str(s)) == s  # Gives a SyntaxError 
eval(repr(s)) == s # Output: True
 

При написании класса вы можете переопределить эти методы, чтобы делать все, что хотите:

s = """w'o"w"""
repr(s) # Output: '\'w\\\'o"w\''  
str(s)  # Output: 'w\'o"w'
eval(str(s)) == s  # Gives a SyntaxError 
eval(repr(s)) == s # Output: True
 

Используя вышеприведенный класс, мы можем увидеть результаты:

s = """w'o"w"""
repr(s) # Output: '\'w\\\'o"w\''  
str(s)  # Output: 'w\'o"w'
eval(str(s)) == s  # Gives a SyntaxError 
eval(repr(s)) == s # Output: True
 

Вход пользователя

Интерактивный вход

Чтобы получить вход от пользователя, используйте функцию input ( обратите внимание : в Python 2.x вместо этого функция называется raw_input , хотя Python 2.x имеет свою собственную версию input которая совершенно иная):

Python 2.x 2.3
name = raw_input("What is your name? ")
# Out: What is your name? _
 

Замечание по безопасности Не используйте input() в Python2 - введенный текст будет оцениваться так, как если бы это было выражение Python (эквивалентное eval(input()) в Python3), которое может легко стать уязвимостью. См. Эту статью для получения дополнительной информации о рисках использования этой функции.

Python 3.x 3.0
name = raw_input("What is your name? ")
# Out: What is your name? _
 

Остальная часть этого примера будет использовать синтаксис Python 3.

Функция принимает строковый аргумент, который отображает его как приглашение и возвращает строку. В приведенном выше коде содержится запрос, ожидающий ввода пользователем.

name = raw_input("What is your name? ")
# Out: What is your name? _
 

Если пользователь вводит «Боб» и попадает, name переменной будет присвоено строке "Bob" :

name = raw_input("What is your name? ")
# Out: What is your name? _
 

Обратите внимание, что input всегда имеет тип str , что важно, если вы хотите, чтобы пользователь вводил числа. Поэтому вам нужно преобразовать str прежде чем пытаться использовать его как число:

name = raw_input("What is your name? ")
# Out: What is your name? _
 

Примечание. Рекомендуется использовать блоки try / except чтобы перехватывать исключения при работе с пользовательскими вводами . Например, если ваш код хочет raw_input в int , и то, что пользователь пишет, является непередаваемым, оно вызывает ValueError .

Stats

22687 Contributors: 210
Friday, August 4, 2017
Лицензировано согласно: CC-BY-SA

Не связан с Stack Overflow
Rip Tutorial: info@zzzprojects.com

Скачать книгу