- •Заголовки
- •16. Python циклические конструкции и оператор for
- •17. Python базовый синтаксис и понятие вложенности. Синтаксис
- •Несколько специальных случаев
- •Программирование в интерактивном режиме
- •Программированиескриптов
- •Идентификаторы вPython
- •18. Python Функции
- •19. Понятие рекурсии, реализация в языке Python
- •20. Python Списки, работа со списками.
- •1. Что такое список
- •2. Операции со списками
- •3. Встроенные функции
Идентификаторы вPython
Идентификаторы в Python– это имена, используемые для определения (“идентификации“) переменных, функций, классов, модулей и других объектов. Идентификатор начинается с букв A-Z или a-z, либо знака подчеркивания (_), после чего следуют ноль или больше букв (*совет – никогда не создавайте свою собственную переменную с именем “_”, т.к. это имя зарезервировано самими интерпретатором), знаков подчеркивания или цифр от 0 до 9.
В идентификаторах Pythonне используются знаки @, $ и %. Так же –Pythonчувствителен к регистру символов, т.е. Manpower и manpower являются двумя различными именами (идентификаторами).
Вот основные правила именования идентификаторов в Python:
Имена классов начинаются с заглавной буквы, а все остальные идентификаторы – со строчных;
Если идентификатор начинается со знака подчёркивания (_) – то он является приватным;
Строки и отступы
Одно из самых важных замечаний для тех, кто начал изучать Python – это то, что в нём при обозначении границ блоков кода для классов и функций, а так же для управления потоками, не используются привычные некоторым фигурные скобки. Вместо этого – в Python используются отступы строк.
Количество отступов в начале строки не имеет значения, но все операторы внутри такого блока должны иметь их одинаковое количество.
Например, оба блока в примере ниже выполнены правильно:
1 |
>>> if True: |
| ||||
2 |
... print "True" |
| ||||
3 |
... else: |
| ||||
4 |
... print "False" | |||||
5 |
... |
| ||||
6 |
True |
|
А вот второй блок в следующем примере – приведёт к ошибке интерпретатора “unexpected indent“:
01 |
>>> if True: |
| ||||||||
02 |
... print "Answer" |
| ||||||||
03 |
... print "True" |
| ||||||||
04 |
... else: |
| ||||||||
05 |
... print "Answer" |
| ||||||||
06 |
... print "False" |
| ||||||||
07 |
File "<stdin>", line 6 |
| ||||||||
08 |
print "False" |
| ||||||||
09 |
^ |
| ||||||||
10 |
IndentationError: unexpected indent |
Таким образом, все линии, имеющие одинаковое количество отступов от начала строки буду формировать блок кода. В примере ниже продемонстрированы блоки с различными операторами.
Многострочные операторы
Операторы и операнды в Python как правило заканчиваются новой строкой. Однако, есть возможность использовать знак продолжения строки “” для обозначения того, что строка продолжается. Например:
1 |
>>> total = item_one + | ||
2 |
... item_two + |
| |
3 |
... item_three |
|
Операнды, заключённые в скобки [], {} или () не нуждаются в использовании такого символа. Например:
1 |
>>> days = ['Monday', 'Tuesday', 'Wednesday', |
| ||
2 |
... 'Thursday', 'Friday'] |
| ||
3 |
>>> print (days) |
| ||
4 |
['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday'] |
Кавычки Python
В Python используются одинарные ('), двойные (") и тройные (''' или """) кавычки для обозначения строковых литералов (или просто – строк).
Тройные кавычки могут использоваться для охвата многострочного текста.
Примеры:
1 |
>>> word = 'word' |
| ||
2 |
>>> sentence = "This is a sentence." |
| ||
3 |
>>> paragraph = """This is a paragraph. It is |
| ||
4 |
... made up of multiple lines and sentences."" |
Комментарии в Python
Хеш-тег (#), который не находится внутри строки задаёт начало комментария. Все символы после# и до конца строки являются частью комментария, и Python игнорирует их.
1 |
#!/usr/bin/python |
| ||
2 |
|
| ||
3 |
# First comment |
| ||
4 |
print "Hello, Python!"; # second comment |
Приведённый выше код даст такой результат:
1 |
Hello, Python! |
Комментарии так же можно размещать и на одной строке после операторов или выражения, например:
1 |
name = "Madisetti" # This is again comment |
Многострочные комментарии можно создать так:
1 |
# This is a comment. |
| |
2 |
# This is a comment, too. | ||
3 |
# This is a comment, too. | ||
4 |
# I said that already. |
|
Пустые строки
Пустые строки, или строки содержащие только пробелы, или строки с комментариями, игнорируются интерпретатором.
В интерактивной сессии интерпретатора, необходимо ввести пустую строку для завершения многострочного оператора. Ожидание ввода данных от пользователяСледующая строка программы отобразит приглашение “Press the enter key to exit” и будет ожидать от пользователя нажатия Enter:
1 |
#!/usr/bin/python |
| |
2 |
|
| |
3 |
raw_input("nnPress the enter key to exit.") |
Символы “nn” тут используются для создания двух новых строк и перед отображением приглашения. Как только пользователь нажмёт Enter – программа завершится. В Python 3 функция raw_input() была заменена функцией input().
Вложенность( то что нашла)
Вложенные списки
Одна из особенностей Python — вложенные списки, которые позволяют вложенные конструкции произвольной глубины и в любых комбинациях, например, список, содержащий словарь, который содержит другой список, либо многомерные массивы, они же матрицы.
% python
>>> M = [[1, 2, 3],
... [4, 5, 6],
... [7, 8, 9]]
Чтобы получить элемент [2][3], необходимо сделать следующее:
% python
>>> M [2][3]
6
D = {..{...{..}}} |
Создание вложенного словаря |
Пример вложенности
% python
>>> data = {'name': {'first': 'Bob', 'last: 'John'}, 'job': ['doctor', 'teacher'], 'age': 31}
>>> data['name']['last']
'John'
>>> data['job'].append('programmer')
>>> data
{'age': 31, 'job': ['doctor', 'teacher', 'programmer'], 'name': {'last': 'John', 'first': 'Bob'}
Области видимости и вложенные функции
Внутри функции: • При обращении к переменной (X) поиск имени X сначала производится в локальной области видимости (функции)затем в локальных областях видимости всех лексически-объемлющих функций, изнутри наружу, затем в текущей глобальной области видимости (в модуле) и, наконец, во встроенной области видимости (модуль builtins). Поиск имен, объявленных в инструкции global, начинается сразу с глобальной (в модуле) области видимости. • Операция присваивания (X = value) по умолчанию создает или изменяет имя X в текущей локальной области видимости. Если имя X объявлено глобальным внутри функции, операция присваивания создает или изменяет имя X в области видимости объемлющего модуля. Если имя X объявлено нелокальным внутри функции, операция присваивания создает или изменяет имя X в ближайшей области видимости объемлющей функции. Обратите внимание, что инструкция global отображает имена в область видимости объемлющего модуля. Когда имеются вложенные функции, можно получить значения переменных в объемлющих функциях, но чтобы их изменить, переменные должны быть указаны в объявлении nonlocal.