MyTetra Share
Делитесь знаниями!
Основные конструкции языка Python
Время создания: 28.12.2012 00:03
Текстовые метки: python, синтаксис, основные конструкции, операции, условия, циклы, функции
Раздел: Компьютер - Программирование - Язык Python
Запись: xintrea/mytetra_syncro/master/base/1356638609mkuzpl0tas/text.html на raw.github.com

Вывод на печать


a = 1

b = 2

print a, b


Оператор условия


if a > b:

c = a

else:

c = b


Множественное условие


if a < 0:

s = -1

elif a == 0:

s = 0

else:

s = 1


Выражения


Выражения показаны в нижеследующей таблице (приоритет в порядке увеличения). Для унарных операций x обозначает операнд. Ассоциативность операций в Python - слева-направо, за исключением операции возведения в степень ( ** ), которая ассоциативна справа налево.


Операция Название


lambda лямбда-выражение

or логическое ИЛИ

and логическое И

not x логическое НЕ

in, not in проверка принадлежности

is, is not проверка идентичности

<,<=,>,>=,!=,== сравнения

| побитовое ИЛИ

^ побитовое исключающее ИЛИ

& побитовое И

<<, >> побитовые сдвиги

+, - сложение и вычитание

*, /, % умножение, деление, остаток

+x, -x унарный плюс и смена знака

~x побитовое НЕ

** возведение в степень

x.атрибут ссылка на атрибут

x[индекс] взятие элемента по индексу

x[от:до] выделение среза (от и до)

f(аргумент,...) вызов функции

( ... ) скобки или кортеж

[ ... ] список или списковое включение

{кл:зн, ...} словарь пар ключ-значение

`выражения` преобразование к строке (repr)



Инкремент и декремент


В Python можно не только делать инкремент и декремент, но и увеличивать/уменьшать на любое число. Пример:


a=3

a+=1 # a будет 4

a-=1 # a будет опять 3

a+=7 # a будет 10


mystring = "Hello"

mystring += " world." # будет "Hello word."



Цикл While


s = "abcdefghijklmnop"

while s != "":

print s

s = s[1:-1]


- этот цикл выведет:


abcdefghijklmnop

bcdefghijklmno

cdefghijklmn

defghijklm

efghijkl

fghijk

ghij

hi

Для большей гибкости при организации циклов применяются операторы break (прервать) и continue (продолжить).


Цикл For

Вывод таблицы умножения:

for i in range(1, 10):

for j in range(1, 10):

print "%2i" % (i*j),

print


Перебор списка:

a = ['Linux', 'Open', 'Office']

for x in a:

print x, len(x)


Еще перебор, обращение к элементу списка по индексу:

a = [`Linux', 'is', 'the', 'best', 'system']

for i in range(len(a)):

print i, a[i]#Обращение к элементу списка по его индексу

Результат:

0 Linux

1 is

2 the

3 best

4 system


Функции


Определение функции:

def cenaLine(rub, kop=0):

return "%i руб. %i коп." % (rub, kop)

Вызов функции


c = cena(8, 50)

print c


Возврат значения из функции в вызывающую программу осуществляется посредством оператора return:


def fib(n): # Функция, возвращающая числа Фибоначчи, не превосходящие n


result = [1]#Этот список будет содержать числа Фибоначчи


a, b = 0, 1

while b < n:

print b,

a, b = b, a+b


result.append(b);#Вставление в результативный список очередного числа


return result #Возвращение результата


В функция можно использовать значения по умолчанию:


def ask_ok(prompt, retries=4, complaint='Yes or no, please!'):



Исключения


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


try:

res = int(open('a.txt').read()) / int(open('c.txt').read())

print res

except IOError:

print "Ошибка ввода-вывода"

except ZeroDivisionError:

print "Деление на 0"

except KeyboardInterrupt:

print "Прерывание с клавиатуры"

except:

print "Ошибка"


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


try:

value = dict[key]

except:

value = default_value


Вместо


if dict.has_key(key):

value = dict[key]

else:

value = default_value


Самостоятельное возбуждение исключений производится через оператор raise:


try:

...

raise MyError, "my error 1"

...

except MyError, x:

print "Ошибка:", x


Кроме описанной формы оператора, есть еще форма try-finally для гарантированного выполнения некоторых действий при передаче управления изнутри оператора try-finally вовне. Он может применяться для освобождения занятых ресурсов, что требует обязательного выполнения, независимо от произошедших внутри катаклизмов:


try:

...

except:

...

finally:

print "Обработка гарантированно завершена"


(непонятно, зачем он нужен. почему не размещать просто в коде после блока try?)



Тип file. Работа с файлами


Объекты этого типа предназначены для работы с внешними данными. В простом случае - это файл на диске. Файловые объекты должны поддерживать основные методы: read(), write(), readline(), readlines(), seek(), tell(), close() и т.п.


Следующий пример показывает копирование файла:


f1 = open("file1.txt", "r")

f2 = open("file2.txt", "w")

for line in f1.readlines():

f2.write(line)

f2.close()

f1.close()




Так же в этом разделе:
 
MyTetra Share v.0.59
Яндекс индекс цитирования