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 с веб-сайта
.
Обратите внимание на символ >>> в коде выше. Это символ пользовательского ввода консоли 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(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!'
Функции
и
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