Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы на вопросы к экзамену.doc
Скачиваний:
78
Добавлен:
29.05.2017
Размер:
386.56 Кб
Скачать

Идентификаторы в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.