Домой

Последняя активность

  

Инструкции языка Python

PyDeKolt avatar PyDeKolt (0) [#] (27.05.2013 / 16:11)
Описываю самые как мне кажется важные и часто встречающиеся инструкции языка Python. В языке кстати отсутствует инструкция switch/case, она вполне может быть заменена if/elif/else.

Инструкция if/elif/else

if <если истинно>: то делай это
elif <если истинно> or <если истинно>:
… <то делай это>
elif <если истинно> and <если истинно>:
… <то делай это>
else:
… <если ни одно из условий не выполнилось, то делай это>

В языке Python имеются 3 логических оператора (эквивалента типа &amp;&amp; и || НЕТ):

and (И)
or (ИЛИ)
not (ОТРИЦАНИЕ)
xor (ИСКЛЮЧАЮЩЕЕ ИЛИ) обозначается символом ^
Python использует так называемую «короткую схему», это означает, что как только будет найден операнд удовлетворяющий условию, интерпретатор прекратит проверять истинность выражения.

Помните! Что в Python любое число не равное нулю, или непустой объект интерпретируется как истина. Числа равные нулю, пустые объекты и специальный объект None интерпретируется как False.

Краткое написание if/else:
  1. X = True
  2. if X:
  3. A = 'Python'
  4. else:
  5. A = 'Ruby'
  6. print A # Python
  7. # А теперь краткая форма
  8. A = 'Python' if X else 'Ruby'
  9. print A # Python
  10. for/in


Цикл for используется для обхода последовательностей элементов таких как списки, кортежи и словари.

for <значение текущего элемента> in <список, словарь, кортеж>:
… <какие то действия с полученным значением элемента>
… if <если Истина>: break <выход из цикла минуя блок else>
… else: continue <переход в начало цикла>
else:
… <выполнить это, если в теле цикла не была вызвана break>

Конечно же else в данной конструкции может быть опущен. Помните о том, что при обходе итерируемого объекта изменения текущего элемента никак не отразятся. Нужно обращаться непосредственно к объекту по ключу или индексу.

Единственное исключение в этом правиле составляют объекты являющиеся элементами списка. В этом случае передается ссылка на объект и его содержимое меняется.

while/else

Является самой универсальной в языке Python. Тело цикла продолжает выполняться пока условное выражение возвращает истину.

while <если Истина>:
… <блок кода>
else:
… <выполнить это, если в теле цикла не была вызвана break>

pass

Пустой заполнитель, который не выполняет никаких действий. Например если вы объявили класс, но пока не описали его или др. случаи.
  1. # объявим класс, в котором нет ничего кроме имени
  2. class MyClass:
  3. pass

try/except/finally/raise/else

Исключения позволяют адекватно реагировать на ошибки в программах.

try:
… <код в котором может произойти ошибка>
… raise TypeError <так можно возбудить исключение>
except <Название исключения, названия можно перечислить через запятую (название можно опустить)>:
… <код который нужно выполнить в случае возникновения ошибки>
finally:
…<код который нужно выполнить в любом случае>
else:
… <код который выполниться если ошибка не произошла>


AssertionError - Проверка в инструкции assert завершилась неудачей.
AttributeError - Была предпринята попытка обратиться к отсутствующему атрибуту, например foo.x, где объект foo не имеет атрибута x.
IOError - Ошибка ввода/вывода; наиболее вероятно, что файл не был открыт
ImportError - Невозможно импортировать модуль или пакет; наиболее вероятно проблема связана с неправильной настройкой пути поиска.
IndentationError - Синтаксическая ошибка; нарушено правило оформления отступов в программном коде.
IndexError - Попытка использовать индекс, превышающий размер последовательности, например x[5], когда в последовательности x имеется всего три элемента.
KeyError - Попытка обращения к несуществующему в словаре ключу.
KeyboardInterrupt - Была нажата комбинация CTRL-C
NameError - Попытка использовать переменную, которая еще не была связана с каким-нибудь объектом.
SyntaxError - Программный код не компилируется из-за синтаксической ошибки.
TypeError - Попытка использовать объект, тип которого не соответствует ожидаемому.
UnboundLocalError - Попытка обратится к локальной переменной, которой еще не было присвоено значение, вероятно потому, что у вас имеется глобальная переменная с тем же именем и вы считаете, что обращаетесь к ней.
ValueError - Передано значение, которое вызывающая программа не ожидает получить, хотя тип значения может быть правильным.


import/from/as

Теперь попробуем разобраться как импортировать данные из других модулей(пакетов).

import <название модуля который импортируем>

import sys

print sys.platform
from <название модуля> import <название объекта который импортируем>

from sys import platform

print platform
from <название модуля> import <название объекта который импортируем> as <имя, которое присваиваем импортируемому объекту>

from sys import platform as myplatform

print myplatform

* Выучить питон
  Всего: 1

Зарегистрируйтесь и сможете комментировать все темы. Кнопочка вверху
Фильтр по автору
Скачать тему

В Форум

Новые вверху
waplog Рейтинг@Mail.ru
Statok.nettop-sid.ru
Яндекс.Метрика