Все программы работают со значениями. Значением может быть число или строка. Значение — это одна из фундаментальных вещей, которыми манипулирует программа.
Например, в первой программе мы уже печатали на экране строковое значение "Hello world!". Аналогичным образом мы можем вывести и число:
>>> print(12)
12
Значения "Hello world!" и 12 относятся к разным типам: 12 — целое число, а "Hello, World!" — строка, представляющая собой последовательность символов. Строковые значения можно узнать по кавычкам, в которые они заключаются. Например, следующая программа выведет 2+3:
print("2 + 3")
У следующей программы кавычки вокруг отсутствуют, поэтому компьютер попытается рассчитать результат, анализируя входные данные как математическое выражение:
print(2 + 3)
Он просто выведет 5, а не 2+3.
Попытка запустить программу с нижеприведённым кодом приведёт к ошибке:
print (Hello World)
Компьютер постарается рассчитать “Hello World” как математическое выражение, каковым оно вовсе не является. Вышеуказанный код выдаст ошибку SyntaxError: invalid syntax, означающую, что компьютер не знает, что значат “Hello” и “World”.
Если есть целые числа, то, должны быть и дробные. Давайте попробуем такую команду:
>>> print(2,4)
2 4
Вот и первый пример ошибки: мы предполагали, что интерпретатор выведет десятичное число, но он воспринял запятую как разделитель между двумя целыми числами и вывел их, разделив пробелом. В языках программирования (и Python не является исключением), целую часть числа от дробной, отделяют при помощи точки. В таких случаях точку называют десятичной точкой.
>>> type(2.4)
<class 'float'>
Что касается запятой, то она является допустимым символом в Python, но используется для других целей. Хотя 2,4 — неверная запись числа, это допустимая конструкция Python. Python интерпретирует 2,4 как список из двух элементов: 2 и 4. Поэтому не пользуйтесь запятыми для записи чисел с целой и дробной частью!
Если вы не знаете, к какому типу принадлежит значение, это можно проверить так:
>>> type("Hello world!") <class 'str'> >>> type(12) <class 'int'> >>> type(2.4) <class 'float'> |
Строки (англ.: string) принадлежат типу str. Целые числа (англ.: integer) в Python могут быть обычными целыми (тип int), длинными целыми (тип long) и комплексными (они не будут рассматриваться и использоваться).
Числа, имеющие целую и дробную части, относятся к типу float (англ.: плавать). Название типа данных объясняется тем, что такие числа в компьютере представляются в формате с
плавающей точкой.
А что можно сказать о таких значениях, как "17" и "3.2"? Они выглядят как числа, но они заключены в кавычки, как строки.
>>> type("17")
<class 'str'>
>>> type("3.2")
<class 'str'>
Это строки. Строки в Python могут заключаться в одиночные (‘) или в двойные кавычки (”).
Например:
>>> type('Hello, World!') <class 'str'>
>>> type("Hello, World!")
<class 'str'>
Строки, заключенные в двойные кавычки, могут содержать внутри одинарные кавычки, как в "Say 'Hello'", а строки, заключенные в одинарные кавычки, могут содержать двойные кавычки, как в 'Say "Hi"'.
Строки – последовательности символов (букв и других знаков) могут состоять из символов английского и любого другого алфавита. Элементы (символы) в строке нумеруются, начиная с нуля. Одиночный символ (знак) является, с точки зрения Python. строкой, состоящей из одного элемента.
Максимально возможное количество символов в строке (длина строки) в Python ограничивается только доступным объёмом памяти. Так что большой объем текста (например, несколько тысяч страниц) может быть записан в одну строку Python.
Предложение print позволяет выводить много значений одновременно; нужно лишь перечислить их через запятые. Например, следующий код выведет: Ответом на 10+10 является 20
print ("Ответом на 10+10 является", 10+10)
Следующая строка кода выведет Ответом на 10+10 является 10+10.
print ("Ответом на 10+10 является", "10+10")
Числа не складываются, потому что они написаны внутри кавычек. Всё, что написано внутри кавычек, воспринимается компьютером как текст. Всё, что написано без кавычек, компьютер воспринимает как математическое выражение либо "компьютерный код".
Должна ли запятая находиться внутри или снаружи кавычек?
Этот образец кода не будет работать. Потому, что в нём нет запятой, разделяющей текст в кавычках и выражение 10+10.
print ("Ответом на 10+10 является, "10+10)
Вначале может показаться, что запятая поставлена, однако можно заметить, что запятая находится внутри кавычек. Запятая, разделяющая аргументы, поданные в функцию, должна находиться вне кавычек. Запятая, которую программист хочет вывести на экран должна находиться внутри кавычек:
Следующий пример будет работать потому, что после текста следует отделяющая запятая:
print ("Ответом на 10+10 является,", 10+10)
Питон имеет коллекцию встроенных функций, которые умеют преобразовывать значения одного типа в другой. Например, функция int() преобразовывает значение в целочисленный тип. Если преобразование произвести невозможно, то возникает исключение:
>>> int("32")
32
>>> int("Hello")
Traceback (most recent call last):
File "", line 1, in ?
ValueError: invalid literal for int(): Hello
Функция int() может приводить к целому типу и дробные числа, но не забывайте, что при преобразовании она просто отбрасывает дробную часть:
>>> int(3.99999)
3
>>> int(-2.3)
-2
Функция float() преобразовывает целые числа и строки в дробный тип.
>>> float(32)
32.0
>>> float("3.14159") 3.14159
Функция str() отвечает за преобразование к строковому типу:
>>> str(32)
'32'
>>> str(3.14149)
'3.14149'
Одна из сильных возможностей языков программирования — возможность работать с переменными. Данные хранятся в ячейках памяти компьютера. Когда мы вводим число, оно помещается в память. Но как, впоследствии, обращаться к этим данными?
В языке программирования данные связываются с каким-либо именем и в дальнейшем обращение к ним возможно по этому имени. Переменная представляет собой имя, которое ссылается на значение.
В программе на языке Python связь между данными и переменными устанавливается с помощью оператора присваивания (знак =). Например, выражение summa = 4 означает, что на объект (данные) в определенной области памяти ссылается имя summa и обращаться к ним теперь следует по этому имени. Для того, чтобы «запомнить» значение достаточно присвоить его переменной.
Оператор присваивания создает новые переменные и присваивает им значения. Код, приведённый ниже, присвоит переменной x значение 10, а затем выведет значение, сохранённое в переменной x.
# Создать переменную x и сохранить в ней число 10. x = 10 # Вывести число, сохранённое в x. print(x) # Это выводит букву x, но не значение x print("x") # Это выводит "x = 10" print("x =", x) |
Результат выполнения скрипта:
10 x x = 10
Заметьте: Переменные пишутся вне кавычек. Вышеприведённый пример также демонстрирует разницу между двумя вариантами: x внутри кавычек и x снаружи кавычек. Если x внутри кавычек, то компьютер просто выводит x. Если x написан вне кавычек, то компьютер выведет значение x. Это бывает частой ошибкой у тех, кто учится программировать.
Тип переменной в Python есть тип присвоенного ей значения.
>>> message = "Hello world!"
>>> n = 12
>>> pi = 3.14159
В этом примере три предложения присваивания. Первое присваивает строку "Hello
world!" |
строковой переменной с именем message. Второе присваивает целое |
значение 12 переменной n, а третье присваивает число с плавающей точкой 3.14159 |
переменной pi.
Оператор присваивания = |
не следует путать со знаком равенства, хотя он и |
обозначается тем же самым символом. Присваивание не является тем же самым, что и |
алгебраическое уравнение. Не рассматривайте их как одно и то же. Оператор присваивания связывает имя, стоящее слева от него, со значением, находящимся справа от него. В присвоении, слева от знака равенства находится переменная. Ничего другого там быть не может. Вот почему вы получите ошибку, если введете:
>>> 17 = n
Справа от знака равенства находится выражение. Выражением является всё то, у чего в результате может быть значение. Изучите код ниже:
x = x + 1
Он верен, даже несмотря на то, что он не является чистым математическим уравнением. Математические уравнения устроены совсем по другому, хотя у них тоже есть переменные, числа и знак равенства. Это выражение берёт текущее значение x, добавляет к нему единицу и сохраняет результат обратно в x.
x = 5 x = x + 1 print(x)
Результатом нижеприведённого кода будет вывод цифры 6.
Следующее выражение является корректным, но бессмысленным. Компьютер прибавит единицу к х, но результат никогда не будет сохранён или выведен.
x + 1
Нижеприведённый код выведет 5, а не 6, потому что программист забыл сохранить результат обратно в переменную x.
x = 5
x + 1
print(x)
Выражение внизу не корректно, потому что слева от знака равенства находится не только переменная.
x + 1 = x
Множественное присваивание
Python позволяет выполнять операцию множественного присваивания, когда одно и тоже значение задаётся сразу нескольким переменным одновременно. Например:
>>> a = b = c = 1
В этом примере создаётся целочисленный объект со значением 1, и все три переменные назначаются к одному и тому же блоку в памяти.
Вы так же можете выполнять множественное присваивание разных значений разным переменным. Например:
>>> a, b, c = 1, 2, "Python"
Тут два целочисленных объекта со значениями 1 и 2 присваиваются переменным с именами a и b, и одно строковое значение "Python" присваивается переменной c:
>>> print(a, b, c)
1 2 Python
Последовательные действия описываются последовательными строками программы. Стоит добавить, что в программах важны отступы, поэтому все операторы, входящие в последовательность действий, должны иметь один и тот же отступ:
# Пример 03.1 a = 1 b = 2 a = a + b b = a - b a = a - b print(a, b)
В примере выше использованы операторы присваивания и оператор print. Что делает этот пример?
Проверить свою догадку можно с помощью интерактивного режима интерпретатора Python. При работе с Python в интерактивном режиме как бы вводится одна большая программа, состоящая из последовательных действий.
Важно выбирать понятные и значимые имена для своих переменных; имя описывает, для чего именно используется переменная.
Имена переменных должны начинаться с маленькой буквы латинского алфавита. Переменные могут начинаться с заглавной буквы или знака подчёркивания, но это особые случаи, которые не следует использовать на постоянной основе. После первой маленькой буквы, переменные могут включать в себя как заглавные, так и маленькие буквы, вперемешку с числами и знаками подчёркивания. Переменные не могут содержать пробелы.
distance first_name ds9 |
Разрешенные имена переменных |
9ds first name %correct |
Недопустимые имена переменных |
FirstName X LIVES_LEFT |
Допустимые, но неправильные имена переменных |
Хотя допустимо использовать буквы верхнего регистра, по существующему соглашению они не используются. Если вы захотите их использовать, помните, что регистр имеет значение. Переменные чувствительны к регистру символов. Это может сбить с толку, если программист не ожидает этого. В коде внизу, на экран будет выведено 6, а не 5, потому что x и X - это две разные переменные.
x = 6
X = 5 print(x)
В имени можно использовать символ подчеркивания (_). Он часто используется в именах, состоящих из нескольких слов, таких, как например next_simple. Если дать переменной недопустимое имя, это приведет к синтаксической ошибке:
>>> 1message = "Hello world!"
SyntaxError: invalid syntax
>>> price_in_$ = 500
SyntaxError: invalid syntax
>>> class = "6А"
SyntaxError: invalid syntax
Имя 1message недопустимо потому, что начинается не с буквы.
Имя price_in_$ неправильно потому, что содержит недопустимый символ доллара.
Но что интерпретатору не нравится в третьем выражении? Давайте попробуем изменить имя переменной class на что-нибудь похожее, например, class_:
>>> class_ = "6А"
Теперь все в порядке. В чем же дело? Почему имя class вызвало ошибку, а имя class_ - нет?
Поставим еще один эксперимент:
>>> import = "Some message" SyntaxError: invalid syntax
Знакомая ситуация, не так ли? Проанализируем то, что мы получили. В качестве имени переменной мы пытались использовать команду import и получили аналогичную ошибку, значит слово class, скорее всего, тоже является командой или каким-то служебным словом. Действительно, слова class и import являются так называемыми ключевыми словами. Ключевые (зарезервированные) слова определяют правила и структуру языка, и не могут использоваться как имена переменных.
В языке Python - 34 ключевых слова:
and |
as |
assert |
break |
class |
continue |
def |
del |
elif |
else |
except |
exec |
False |
finally |
for |
from |
global |
if |
import |
in |
is |
lambda |
none |
nonlocal |
not |
or |
pass |
raise |
return |
try |
True |
with |
while |
yield |
|
|
Если интерпретатор выдает ошибку на одно из имен ваших переменных, и вы не будете знать, почему, проверьте, нет ли его в этом списке.
© ООО «Знанио»
С вами с 2009 года.