Опубликован: 14.06.2015 | Доступ: свободный | Студентов: 7371 / 1135 | Длительность: 09:49:00
Авторские права: Creative Commons Attribution 3.0

Лекция 2: Переменные, выражения и инструкции (Variables, expressions and statements)

По ссылке youtube выложено видео с русскими титрами.

2.1. Значения и типы

Значение (value) – одно из базовых понятий, с которым работают программы, наподобие букв или чисел. Значения могут выглядеть по-разному: 1, 2 или ‘Hello, World!’.

Эти значения принадлежат различным типам (types): 2 – это целочисленное значение (integer), ‘Hello, World!’ – строковое (string), т.к. содержит "строку" букв. Вы (и интерпретатор) можете распознать строки, т.к. они заключаются в кавычки

Оператор print также работает с целыми числами:

>>> print 4
4

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

>>> type('Hello, World!')
<type 'str'>
>>> type(17)
<type 'int'>

Не удивительно, что строки принадлежат к типу str, а целые значения - к типу int. Менее очевидно то, что числа с дробной частью принадлежат к типу float, такой формат называется с плавающей точкой (floating-point).

>>> type(2.2)
<type 'float'>

Как насчет ‘17’ и ‘2.2’? Они похожи на числа, но кавычки указывают на то, что это строки:

>>> type('17')
<type 'str'>
>>> type('2.2')
<type 'str'>

Они являются строками.

Если вы встречаете большое число, то может возникнуть соблазн использовать разделители между группами цифр:

>>> print 1,000,000
1 0 0

Python интерпретировал 1,000,000 как последовательность целых чисел, разделенных запятой, и вывел на экран отдельные числа.

Мы столкнулись с примером семантической ошибки: код выполняется без сообщений об ошибке, но делает не то, что мы задумывали.

2.2. Переменные

Одна из наиболее мощных особенностей языка программирования – это манипуляция переменными (variables). Переменная – это имя, которое ссылается на значение.

Оператор присваивания (assignment statement) создает новые переменные и присваивает им значения:

>>> message = 'And now for something completely different'
>>> n = 17
>>> pi = 3.1415926535897931

Этот пример демонстрирует три оператора присваивания. Сначала строка присваивается переменной с именем message; затем значение 17 – переменной n; третье присваивание – приближенное значение числа pi присваивается переменной pi.

Общий способ представления переменных на бумаге заключается в написании имени со стрелкой, направленной на значение этой переменной. Подобный вид схемы называется диаграммой состояний (state diagram), потому что показывает состояние каждой из переменных. Следующая диаграмма показывает результат из предыдущего примера:


Для отображения на экране значения переменной можно воспользоваться инструкцией print:

>>> print n
17
>>> print pi
3.14159265359

Типы переменных – это типы значений, на которые они ссылаются.

>>> type(message)
<type 'str'>
>>> type(n)
<type 'int'>
>>> type(pi)
<type 'float'>

2.2. Имена переменных и ключевые слова

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

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

Символ подчеркивания ( _ ) может встречаться в имени переменной. Он часто используется в именах с несколькими словами, такими как my_name или airspeed_of_unladen_swallow.

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

>>> 76trombones = 'big parade'
SyntaxError: invalid syntax
>>> more@ = 1000000
SyntaxError: invalid syntax
>>> class = 'Advanced Theoretical Zymurgy'
SyntaxError: invalid syntax

76trombones – неправильное имя, т.к. оно не начинается с буквы. more@ - неправильное имя, т.к. содержит некорректный символ @. Что не так с class?

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

В Python зарезервировано 31 слово:

and del from not while as elif global or with assert else if 
pass yield break except import print class exec in raise 
continue finally is return def for lambda try

В новой версии Python 3.0, exec больше не является зарезервированным словом, а nonlocal – является.

Алексей Виноградов
Алексей Виноградов

Видеокурс выложен на сайте Altube.ru вместо Youtube и плеер Altube не поддерживает субтитры. Прошу решить вопрос о предоставлении русских субтитров в этом англоязычном видеокурсе.

Петр Олейников
Петр Олейников

Данные файлы неоходимы не только для самостоятельных работ, но и для тестов. А по ссылкам в лекциях они не доступны, выдает ошибку 404.