Инструменты пользователя

Инструменты сайта


Боковая панель

Связь

python

Python

Homepage: Python

Python ([ˈpaɪθən]; па́йсон, па́йтон, пито́н) — высокоуровневый язык программирования общего назначения с акцентом на производительность разработчика и читаемость кода. Синтаксис ядра Питона минималистичен.

Заметки по языку Python

Ссылки

Синтаксис Python

Комментарий

# - символ, используется для комментирования одиночных строк.

(), \ - разбиение длинных логических строк на физические. Явно - с помощью обратной косой черты или неявно - внутри скобок.

'', "", ''' '''

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

\ - задает управляющие последовательности внутри строковых литералов:

In [1]: print "stroka1\nnext stroka2"
------> print("stroka1\nnext stroka2")
stroka1
next stroka2

Кодировка файла

Правильная начало файла ниже. Не должно быть пустых строк перед coding

#!/usr/bin/env python
# -*- coding: utf-8 -*-
#

Команды интерпретатора Python, IPython

Запуск интерпретатора Python или IPython

~$ python
Python 2.6.2 (release26-maint, Apr 19 2009, 01:56:41)
[GCC 4.3.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>

Ctrl+D - выход

$ ipython
/var/lib/python-support/python2.6/IPython/Magic.py:38: DeprecationWarning: the sets module is deprecated
  from sets import Set
Python 2.6.2 (release26-maint, Apr 19 2009, 01:56:41)
Type "copyright", "credits" or "license" for more information.

IPython 0.9.1 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object'. ?object also works, ?? prints more.

Ctrl+D - выход

Команды интерпретатора

  • вывод ключевых слов Python. Их нельзя использовать в качестве имен переменных, функций или других объектов.
In [1]: import keyword
In [2]: print keyword.kwlist
------> print(keyword.kwlist)
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec',
'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print',
'raise', 'return', 'try', 'while', 'with', 'yield']

Директивы

Начиная с Python 2.3, для использования в тексте программы символов, не входящих в ASCII, необходимо явно указывать кодировку исходного кода в начале модуля, например:

# -*- coding: utf-8 -*-

После этого можно, например, использовать кириллицу в Unicode-литералах.

Вывод полного перечня кодировок и их псевдонимов:

In [3]: import encodings
In [5]: print encodings.aliases.aliases
------> print(encodings.aliases.aliases)
{'iso_ir_6': 'ascii', '1140': 'cp1140', 'tis620': 'tis_620', 'iso8859': 'latin_1', 'chinese': 'gb2312',
...
'iso_ir_148': 'iso8859_9', 'utf_32be': 'utf_32_be', 'ebcdic_cp_ca': 'cp037', 'tis_620_0': 'tis_620'}

Обработка исключений

Обработка исключений поддерживается в Python посредством операторов try, except, else, finally, raise, образующих блок обработки исключения. В общем случае блок выглядит следующим образом:

try:

  #здесь код, который может вызвать исключение
  raise ExceptionType("message")

except (Тип исключения1, Тип исключения2, …), Переменная:

  #Код в блоке выполняется, если тип исключения совпадает с одним из типов
  #(Тип исключения1, Тип исключения2, …) или является наследником одного
  #из этих типов.
  #Полученное исключение доступно в необязательной Переменной.

except (Тип исключения3, Тип исключения4, …), Переменная:

  #количество блоков except не ограниченно
  raise #Сгенерировать исключение "поверх" полученного

except:

  #Будет выполнено при любом исключении, не обработанном типизированными блоками except

else:

  #Код блока выполняется, если не было поймано исключений.

finally:

  #будет исполненно в любом случае, возможно после соответствующего
  #блока except или else

Совместное использование else, except и finally стало возможно только начиная в Python 2.5. Информация о текущем исключении всегда доступна через sys.exc_info(). Кроме значения исключения Python также сохраняет состояние стека вплоть до точки возбуждения исключения — так называемый traceback.

В отличие от компилируемых языков программирования, в Python использование исключения не приводит к значительным накладным расходам (а зачастую даже позволяют ускорить исполнение программ) и очень широко используется. Исключения согласуются с философией Python (10-й пункт «Дзена» Python — «Ошибки никогда не должны умалчиваться») и являются одним из средств поддержки «утиной типизации».

Иногда вместо явной обработки исключений удобнее использовать блок with (доступен, начиная с Python 2.5).

Цикл for

Инструкция for в языке Python немного отличается от того, что используется в таких языках, как C и Pascal. Вместо того, чтобы всегда перебирать числа арифметической прогрессии (как в Pascal) или предоставлять пользователю полную свободу выбора итератора и условий выхода из цикла (как в C), инструкция for в языке Python перебирает элементы произвольной последовательности в порядке их следования. Вот общая схема инструкции:

for lvalue in sequence:

suite1

[else:

suite2]

Расшифруем:

1) сначала выполняется обязательная ветвь for;

2) sequence представляет собой последовательность элементов, будь то строка, список или кортеж, вычисляется он один раз, и изменять его не рекомендуется;

3) in означает, что переменная lvalue перебирает все элементы последовательности sequence;

4) после того как ветвь for выполнится (элементы в последовательности закончатся), происходит переход к необязательной ветви else (как обычно, он может отсутствовать);

От сухих формулировок перейдем к примеру:

list = [‘I ’, ‘love ’, ‘you!’]
for text in list:

… print text,

I love you!

Цикл while

Инструкция while предназначена для создания циклов. Циклы необходимы для многократного выполнения тех или иных действий и выглядят так:

while expr:

suite1

[else:

suite2]

Расшифруем:

1) цикл должен состоять минимум из одной ветви while;

2) в этой ветви проверяется истинность условия expr, и, если оно истинно, то выполняется тело ветви - suite1, по завершении которого вновь проверяется условие, и т.д., пока условие не станет ложным;

3) если условие expr станет ложным, то осуществляется переход к ветви else с телом suite2, после выполнения которого происходит выход из цикла;

4) ветвь else является необязательным (может отсутствовать), в этом случае, когда условие expr перестанет быть истинным, сразу происходит выход из цикла.

Рассмотрим пример, выводящий ряд Фибоначчи:

a,b = 0,1
while b < 10:

… print b,

… a,b = b, a + b

1 1 2 3 5 8

Python и условные операторы Цикл while

Здесь, цикл while выполняется, пока истинно условие b<10.

Рассмотрим пример с веткой else:

number = 1
while number != 5:

… print number,

… number += 1

…else:

… print ‘number =’, number

1 2 3 4 number = 5

На этот раз, после того как условие перестало быть истинным (number = 5), выполняется else, где и выводится последнее значение переменной number.

Для удобной работы с циклами Python предлагает инструкции break и continue.

break, находящийся внутри ветви while, указывает немедленно выйти из цикла. При этом пропускается ветвь else (если она присутствует):

number = 1
while number != 5:

… print number,

… number += 1

… if number == 4:

… break

…else:

… print ‘number =’, number

1 2 3

Как видно, еще до того, как переменная number стала равной 5, удовлетворяется условие number = 4 и выполняется выход из цикла по команде break, при этом ветвь else была проигнорирована.

continue, также находящийся внутри цикла, указывает, что надо пропустить весь нижеследующий за ним код и продолжить выполнение цикла заново:

number = 1
while number < 5:

… number = +1

… if number ⇐ 2:

… continue

… print number,

…else:

… print ‘number =’, number

3 4 5 number = 5

На этот раз цикл каждый раз увеличивает переменную number на единицу, но не может вывести значение до цифры 3, так как в этом случае выполняется условие number⇐ 3 и благодаря continue пропускается нижеследующий код для вывода – инструкция print number. В случае, когда переменная number больше 3, воздействие инструкции continue не наблюдается, поэтому значение number и выводится. Также — на ветви else выполнение инструкции continue никак не влияет.

Отмечу, цикл while 1 будет выполняться вечно (может, где и применимо), а while 0 не будет выполнен ни разу. Теперь подробно об условиях, применяющихся в if и while.

python.txt · Последние изменения: 2015/09/19 12:57 (внешнее изменение)