Similar presentations:
лекция 3 Синтаксис в Python
1. Синтаксис в Python
2. Синтаксис в Python
• Синтаксис языка программирования – этонабор правил, которые определяют структуру
и порядок написания программ на этом
языке.
• Говоря о синтаксисе, мы подразумеваем
правила написания идентификаторов и
литералов, использования ключевых слов,
разделения и оформления инструкций и
комментариев и т.д.
3. Лексемы и литералы в Python
• Если синтаксис – это набор правил, которые помогаютнам (программистам) правильно писать инструкции,
то лексемы - это кирпичики, из которых мы эти
инструкции составляем.
• Лексема – это минимальная единица кода
программы, которая имеет для интерпретатора
определенный смысл и не может быть разбита на
более мелкие логические части.
Все лексемы в Python делятся на пять основных групп:
• идентификаторы и ключевые слова (NAME),
• литералы (NUMBER, STRING и т.д.),
• символы операций (OP),
• разделители (NEWLINE, INDENT, ENDMARKER и др.)
• комментарии (COMMENT).
4. Лексемы и литералы в Python
• Узнать из каких лексем состоит тот или иной участокисходного кода Python можно при помощи модуля
лексического сканера tokenize, который можно найти
в стандартной библиотеке в разделе Python Language
Services.
• После получения списка лексем, его можно
использовать,
например,
для
синтаксической
подсветки кода на языке Python, логического
разбора кода.
5. Лексемы и литералы в Python
• Для того, чтобы необходимый модуль библиотекистал доступен для использования в скрипте, его
нужно
сперва
к
нему
подключить,
т.е. импортировать.
• Выполняется
это
при
помощи
ключевого
слова import, после которого через пробел
указывается требуемый модуль.
6. Лексемы и литералы в Python
• Рассмотримпример
№1,
в
котором
представлен код простейшей программы,
разбивающей строку с исходным pythonкодом на лексемы и выводящей их на экран
7.
Пример №1. Разложение pythonкода на лексемы.8.
• Как видим, лексический сканер выделил нам такиелексемы, как
• # Выводим значения на экран. (комментарий),
• print (ключевое слово),
• my_dict (идентификатор),
• {, :, ] (символы операций),
• 'Версия' (строковый литерал).
• Присутствуют в разборе и разделители в виде
символов новой строки, которые при отображении
на экране добавили нам заметные отступы.
• Что касается термина токен, то это та же самая
лексема, только с указанием ее местонахождения в
исходном коде. Дело в том, что лексические сканеры
обычно выделяют не только сами лексемы, но также
номера строк и столбцов, где каждая лексема
начинается и заканчивается.
9.
• Токен – это набор из лексемы и ее координат висходном коде языка программирования.
• Литералы – это простые неименованные
значения некоторого типа данных, написанные
непосредственно в самом коде программы.
В качестве примеров приведем литералы, которые
являются значениями различных типов данных:
вещественное число 3.4,
целое число 5,
комплексное число 5+3j,
строка в двойных кавычках "яблоко",
строка в одинарных кавычках 'две груши',
логические значения True и False,
словарь {1: 1, 'два': 2},
список [1, 2, 3] и т.д.
• Итак, лексемы – это логически неделимые
фрагменты кода, а литералы – обычные
значения в нем.
10. Имена в Python
Идентификаторы – это просто имена (например,переменных, функций или классов).
В Python идентификаторы чувствительны к регистру
символов, должны начинаться с буквы любого
алфавита в Юникоде или символа подчеркивания (_),
после чего могут следовать любые буквы, цифры или
символы подчеркивания. При этом с цифры имена
начинаться не должны, иначе интерпретатор не
сможет отличить их от чисел.
11. Примерами идентификаторов могут служить:
Примерами идентификаторовмогут служить:
• b (латинская буква),
• ж (русская буква),
• _b (начинается со знака подчеркивания),
• py_2 (включает цифру),
• _Чаво (начинается со знака подчеркивания и включает русские
буквы, одна из которых заглавная),
• G123 (начинается с заглавной буквы),
• set_name (имя в «змеиной» нотации),
• setName (имя в «верблюжей» нотации),
• ClassName (стиль CapWords) и т.д.
В то же время комбинации символов 15var_1, $Var2 или var 3 не
могут использоваться в качестве идентификаторов, т.к. они
начинаются либо содержат недопустимые символы (третье имя
содержит пробел).
12.
• Также следует помнить про регистриспользуемых
символов,
поскольку,
например,
идентификаторы var_1, Var_1 и VAR_1
обозначают
имена
совершенно
разных
переменных или функций, т.к. регистр
символов у них не совпадает.
• Для лучшего восприятия кода следует давать
именам понятные и по возможности краткие
названия, которые бы соответствовали,
например, хранящимся в переменных
данным или же выполняемым функциями
действиям.
13.
Пример №2. Стили записиидентификаторов.
14. Отступы и точка с запятой в Python
•Вотличие
от
многих
других
языков
программирования
в Python каждая инструкция (команда на
языке Python) обычно отделяется от других не
точкой с запятой (;), а переводом строки.
Общее правило в Python гласит, что конец
строки
автоматически
считается
концом
инструкции, находящейся в этой строке.
• В свою очередь это правило порождает другое,
которое предписывает (за редким исключением)
писать в каждой строке по одной инструкции
15.
Пример №3. Примерыразделения инструкций в Python.
16.
Другим важным отличием языка Python является то,что вложенные инструкции одного уровня должны
оформляться одинаковыми отступами от левого края.
Именно по величине отступов интерпретатор
определяет, где заканчивается очередной блок
инструкций и начинается новый. Общий шаблон
оформления составных (вложенных) инструкций
имеет вид:
Основная инструкция:
Вложенный блок инструкций
Неважно, какие отступы мы будем использовать,
главное, чтобы для инструкций одного уровня
вложенности
они
были
одинаковыми
(см.
пример №4). Так это могут быть символы табуляции
или несколько подряд идущих пробелов, но что-то
одно в пределах одного блока инструкций.
17.
Пример №4. Порядокиспользования отступов в Python.
18.
Каки
в
большинстве
других
языков
программирования в Python присутствует условная
инструкция if, которая в общем случае имеет
следующий формат записи:
if <Условие №1>:
<Блок инструкций №1>
elif <Условие №2>:
<Блок инструкций №2>
...
else:
<Запасной блок инструкций>
19.
Пример №5. Запись несколькихинструкций на одной строке.
20.
• Итак, мы выяснили, что инструкциив Python следует записывать по одной на
каждой строке.
• При этом использовать точку с запятой не
нужно, т.к. конец строки автоматически
завершает текущую инструкцию.
• Но что, если инструкция получается
слишком длинной и не помещается
полностью на экране? В этом случае можно
расположить ее на нескольких строках,
заключив в зависимости от ситуации в пару
круглых, квадратных или фигурных скобок
(см. пример №6).
21.
Пример №6. Запись однойинструкции на нескольких
строках.
22.
• Для вывода информации на экран используетсявстроенная функция print(), которой через запятую
следует передавать выводимые на экран значения.
• При этом в качестве дополнительных аргументов
функции можно передавать именованные строковые
аргументы sep и end.
• Первый
задает
вид
разделителя
между
выводимыми значениями (по умолчанию это
обычный пробел, т.е. sep=' '), а второй –
символы в конце вывода (по умолчанию это
символ перевода строки, т.е. end='\n').
• В итоге инструкция вывода, например, двух
значений может иметь такой вид: print('один', 'два',
sep=' ', end='\n').
23. Комментарии в Python
Еще одной важной частью синтаксиса любогоязыка программирования являются комментарии.
В Python используются только однострочные
комментарии, которые начинаются с символа #.
Комментарии идут только до конца строки и весь
код
после
символа
#
интерпретатором
игнорируется (см. пример №7). При этом принято
записывать комментарии на отдельной строке до
инструкции, а не вставлять их после в той же
строке.
24.
Пример №7. Комментарии вPython.
25. Форматирование python-кода(подводим итог)
• На каждой строке следует писать по одной инструкции,не вставляя в конце точку с запятой.
• После основной инструкции должно присутствовать
двоеточие. При этом одинаковые блоки вложенных
инструкций должны отделяться с левой стороны
идентичными отступами. В идеале для этого нужно
использовать по четыре пробела на каждый уровень
вложенности.
• Строки кода по возможности должны полностью
помещаться в видимой области экрана монитора. В
идеале они не должны превышать длины в 79 символов.
Для переноса длинных инструкций на новую строку в
зависимости от ситуации следует использовать круглые,
квадратные или фигурные скобки.
26. Форматирование python-кода(подводим итог)
• В большинстве случаев интерпретатор игнорируетподряд идущие пробелы и символы табуляции (отступы
сюда не относятся!!!). Поэтому для визуального
разделения
некоторых
лексем
и
повышения
читабельности кода можно смело использовать пробелы
(см. пример №8). Однако при этом желательно
придерживаться устоявшихся стандартов и, например, не
ставить подряд несколько пробелов, а также не
использовать для таких целей символы табуляции.
• Комментарии в исходном коде следует писать на
отдельной строке, а не вместе с инструкцией на одной
строке. При этом принято отделять символ решетки от
текста комментария пробелом, а предложения начинать
с заглавной буквы и завершать точкой.
27.
Пример №8. Примерыиспользования пробелов в коде
Python.
28. Самостоятельно:
• Создайтескрипт,
в
котором
переменным
num
и
s,
присвойте
значения 500 и ' рублей'.
• Затем выведите значения переменных на
экран
при
помощи
функции
print,
использовав в качестве разделителя пустую
строку и завершив вывод двумя символами
перевода строки.
• В конце скрипта напишите комментарий
«Символ = в программировании означает
присвоить, а не равно!».
29. Домашнее задание:
• Создайте переменные для хранения вашегоимени, возраста и любимого цвета.
• Выведите их на экран.
programming