May 21, 2020

Python (1/9) SoloLearn

1.Начнем с элементарного.

1.1.Что такое Python?

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

Язык очень популярен и используется такими организациями, как Google, NASA, CIA и Disney.

Код Python обрабатывается программой-интерпретатором непосредственно во время выполнения. Нет необходимости проводить компиляцию программы перед ее выполнением.

1.1.2. 

Существуют три основные версии Python: 1.x, 2.x и 3.x. Они в свою очередь разделяются на подверсии, например, 2.7 или 3.3.

Изменения языка, совместимые с более ранними версиями, вводятся, но только между основными версиями; код, написанный на Python 3.x, будет всегда совместим с будущими версиями.

В настоящее время используются Python версий 2.x и 3.x.

Этот курс посвящен Python 3.x, но при желании вам будет несложно перейти на другую версию.

Python имеет несколько разных реализаций, написанных на разных языках.

В этом курсе мы будем рассматривать реализацию CPython, наиболее широко используемую.

Интерпретатор - это программа, которая выполняет сценарии, написанные на интерпретируемых языках, таких как Python.

1.2.Пишем первую программу

1.2.1. 

Давайте начнём с создания простой программы, которая выводит строку «Hello world!».

В Python для вывода строки используется оператор print.

Пример:

>>> print('Hello world!')

Hello world!

Поздравляем! Вы только что написали свою первую программу на Python.

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

При использовании компьютера, вам необходимо скачать и установить Python с веб-сайта

www.python.org

.

Обратите внимание на символ >>> в коде выше. Это символ пользовательского ввода консоли Python.  Python - это интерпретированный язык, из чего следует, что каждая строка выполняется после её ввода. Python также присутствует IDLE - интегрированная среда разработки, включающая в себя инструменты для написания и отладки всей программы.

1.2.2. 

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

Например:

>>> print('Hello world!')

Hello world!

>>> print('Hello world!')

Hello world!

>>> print('Spam and eggs...')

Spam and eggs...

В коде Python часто используются цитаты со скетчей комик-группы «Монти Пайтон». Так слова «spam» и «eggs» часто используются в Python в качестве переменных-заполнителей, аналогично «foo» и «bar» в других языках программирования.

1.3.Простые операции

1.3.1. 

Python может использоваться для проведения вычислений.

Введите уравнение непосредственно в консоли Python, и она выдаст результат.

>>> 2 + 2

4

>>> 5 + 4 - 3

6

Пробелы вокруг знаков плюс и минус здесь не являются обязательными (код будет правильным без них), но с ними код удобнее читать.

1.3.2.

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

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

>>> 2 * (3 + 4)

14

>>> 10 / 2

5.0

Одинарная черта используется для деления, в результате чего производится десятичное число (число с плавающей точкой или вещественное число на языке программистов). Детальнее о числах с плавающей точкой дальше.

1.3.3.

 Знак минус указывает на отрицательное число.

Операции с отрицательными числами аналогичны операциям с положительными.

>>> -7

-7

>>> (-7 + 2) * (-4)

20

Перед числами можно ставить знаки плюса, но это не будет иметь никакого эффекта. В основном так делают, чтобы подчеркнуть, что число положительное, и чтобы код было удобнее читать.

1.3.4.

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

>>> 11 / 0

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

ZeroDivisionError: division by zero

В Python последняя строка сообщения об ошибке указывает тип ошибки.

Внимательно читайте сообщения об ошибках, так как они часто помогают понять, как исправить программу!

1.4. Числа с плавающей точкой

1.4.1. 

Числами с плавающей точкой в Python называются нецелые числа. Например, это такие числа, как 0.5 и -7.8237591.

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

>>> 3/4

0.75

>>> 9.8765000

9.8765

Компьютеры не могут с точностью сохранить вещественные числа, так же, как и мы не можем записать все числа после запятой для уравнения 1/3 (0,3333333333333333...). Помните об этом, потому что это часто приводит к досадным ошибкам!

1.4.2.

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

Такие числа также производятся путем операции с двумя вещественными числами или с вещественным и целым числом.

>>> 8 / 2

4.0

>>> 6 * 7.0

42.0

>>> 4 + 1.65

5.65

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

1.5. Другие операции с числами.

1.5.1.

 Возведение в степень

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

>>> 2**5

32

>>> 9 ** (1/2)

3.0

Вы можете объединить экспоненты вместе. Другими словами, вы можете увеличить число до нескольких степеней. Например, 2 3 2.

1.5.2.

Неполное частное и остаток

Для определения частного и остатка от деления используются соответственно операции целочисленного деления и деление по модулю.

Целочисленное деление осуществляется с помощью двух косых черт (/).

Операция деление по модулю осуществляется с помощью символа процента (%).

Эти операции могут проводиться как с дробными числами, так и с целыми.

Эта строка означает, что нужно сделать целочисленное деление числа 20 на 6 (3), и остаток 1.25 поделить на 0.5 (0.25).

>>> 20 // 6

3

>>> 1.25 % 0.5

0.25

1.6. Строки

1.6.1.

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

Строка создается путем ввода текста между парой одинарных или двойных кавычек.

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

>>> "Python is fun!"

'Python is fun!'

>>> 'Always look on the bright side of life'

'Always look on the bright side of life'

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

1.6.2. 

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

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

Другие символы, которые нужно экранировать таким образом - символы перевода строки и обратные косые черты.

Двойные кавычки нужно экранировать только в строках, заключенных в двойные кавычки; то же самое касается и одинарных кавычек.

>>> 'Brian\'s mother: He\'s not the Messiah. He\'s a very naughty boy!'

'Brian's mother: He's not the Messiah. He's a very naughty boy!'

\n используется для перехода на новую строку.

Обратные косые черты

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

1.6.3. 

В Python есть простой способ экранирования символов новой строки, позволяющий не набирать \n вручную. Напишите строку с

тремя кавычками

и переводами строки: нажимайте клавишу Enter и переводы строк будут автоматически экранированы.

>>> """Customer: Good morning.

Owner: Good morning, Sir. Welcome to the National Cheese Emporium."""

'Customer: Good morning.\nOwner: Good morning, Sir. Welcome to the National Cheese Emporium.'

Как видите, \n автоматически выведен на экран там, где мы нажали Enter.

1.7. Простые функции ввода и вывода

1.7.1.

Вывод.

Как правило, программы принимают некоторый пользовательский

ввод

, обрабатывают его и отображают

вывод

.

В Python для вывода результата на экран используется функция

print

. В результате на экран будет выведен некоторый текст.

>>> print(1 + 1)

2

>>> print("Hello\nWorld!")

Hello

World!

При выводе на экран кавычки вокруг текста не отображаются.

1.7.2.

Ввод

Чтобы получить данные от пользователя, в Python используется функция с интуитивным названием

input

(англ. ввод).

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

>>> input("Enter something please: ")

Enter something please: This is what\nthe user enters!

'This is what\\nthe user enters!'

Функции

print

и

input

не очень-то полезны в консоли Python, так как она выполняет операции ввода и вывода автоматически. Тем не менее они вам очень пригодятся в настоящих программах.

1.8. Операции со строками.

1.8.1. 

Объединение

Подобно целым и дробным числам, строки в Python можно сложить с помощью операции

объединения (конкатенации)

.

При объединении строк не имеет значения, созданы ли они с одинарными или двойными кавычками.

>>> "Spam" + 'eggs'

'Spameggs'

>>> print("First string" + ", " + "second string")

First string, second string

Вы не можете объединить строки с числами (целыми числами). Узнайте, почему на следующем уроке.

1.8.2.

 Даже если ваши строки содержат числа, они будут объединяться как строки, а не числа. Сложение строки с числом выдаст ошибку: несмотря на сходство, это два разных объекта.

>>> "2" + "2"

'22'

>>> 1 + '2' + 3 + '4'

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

TypeError: unsupported operand type(s) for +: 'int' and 'str'

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

1.8.3. 

Операции со строками

Строки также можно

умножать

на целые числа. Это приводит к повторению первоначальной строки. Порядок следования не имеет значения, но строка, как правило, следует первой.

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

>>> print("spam" * 3)

spamspamspam

>>> 4 * '2'

'2222'

>>> '17' * '87'

TypeError: can't multiply sequence by non-int of type 'str'

>>> 'pythonisfun' * 7.0

TypeError: can't multiply sequence by non-int of type 'float'

Попробуйте умножить строку на 0 (ноль) и посмотрите, что произойдет.

1.9. Преобразование типа

1.9.1.

 В Python возможность выполнения операции зависит от типов данных. Например, нельзя сложить две строки, содержащие числа 2 и 3, если вы хотите получить число 5: программа будет интерпретировать их как строки и вернет результат 23.

В этом случае нужно

преобразовать тип данных.

В предыдущем примере вам нужно было использовать функцию

int

.

>>> "2" + "3"

'23'

>>> int("2") + int("3")

5

Мы уже познакомились с такими типами данных, как целые и дробные числа и строки. Для преобразования в эти типы данных используются соответственно функции

int

,

float

и

str

.

1.9.2. 

Другим примером преобразования типа является конвертация пользовательского ввода

(строки)

в числа

(целые

или

дробные)

с целью выполнения вычислений.

>>> float(input("Enter a number: ")) + float(input("Enter another number: "))

Enter a number: 40

Enter another number: 2

42.0

Передача нецелых или плавающих значений приведет к ошибке.

1.10. Переменные

1.10.1.

Переменные

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

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

один знак равенства

. В отличие от большинства остальных строк, в консоли Python ничего не выводится.

>>> x = 7

>>> print(x)

7

>>> print(x + 3)

10

>>> print(x)

7

Переменные можно использовать для выполнения операций, как вы это делали с числами и строками. Как видите, переменная сохраняет значение на протяжении всей программы.

1.10.2. 

Переменным могут присваиваться новые значения неограниченное количество раз.

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

>>> x = 123.456

>>> print(x)

123.456

>>> x = "This is a string"

>>> print(x + "!")

This is a string!

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

1.10.3. 

Имена переменных

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

Нарушение этих правил приводит к ошибкам.

>>> this_is_a_normal_name = 7

>>> 123abc = 7

SyntaxError: invalid syntax

>>> spaces are not allowed

SyntaxError: invalid syntax

Python - регистрозависимый язык программирования. Таким образом,

Фамилия

и

фамилия

будут считаться разными именами переменных в Python.

1.10.4. 

Попытка сослаться на переменную, которой не было назначено значение, вызовет

ошибку

.

Можно использовать оператор

del

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

>>> foo = "a string"

>>> foo

'a string'

>>> bar

NameError: name 'bar' is not defined

>>> del foo

>>> foo

NameError: name 'foo' is not defined

Можно также взять значение переменной из пользовательского ввода.

>>> foo = input("Enter a number: ")

Enter a number: 7

>>> print(foo)

7

Переменные

foo

и

bar

- это

метасинтаксические

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

1.11. Операции «на месте»

1.11.1. 

Операции «на месте»

(in-place) позволяют записать такую команду, как 'х = х + 3', более коротко: 'х += 3'.

То же возможно и с другими операциями: -, *, / и %.

>>> x = 2

>>> print(x)

2

>>> x += 3

>>> print(x)

5

1.11.2. 

Эти операции могут применяться и к другим типам данных, например, к

строкам

.

>>> x = "spam"

>>> print(x)

spam

>>> x += "eggs"

>>> print(x)

spameggs

В других языках программирования используются специальные операции, такие как ++, что является сокращением для х + = 1. В Python таких операций

нет

.

1.12. Пользуемся редактором

До сих пор мы работали с Python только в консоли: писали и выполняли одну строку кода один раз.

Настоящие программы пишутся несколько по-другому: сначала пишутся много программных строк в текстовом файле, затем они выполняются с помощью интерпретатора Python.

В

IDLE

(интегрированная среда разработки на языке Python) это делается следующим образом: создается новый файл, пишется код, затем файл сохраняется и запускается. Это можно сделать либо с помощью команд меню, либо сочетанием клавиш Ctrl-N, Ctrl-S и F5.

Строки кода в файле интерпретируется так, как будто вы их вводили в консоли по-отдельности.

x = 7

x = x + 2

print(x)

Исходные файлы с кодом Python имеют расширение .py