Синтаксис Python

Простые примеры синтаксиса языка. Если вам нужно более полное описание языка, вы должны воспользоваться сайтами python.org.

Важно

Отступы являются частью языка. По отступу определяется где заканчивается тело цикла или функции.

Ветвление:

if x+y > 5:
    alert("Сумма x + y очень большая!")
elif x<0 or y<0:
    error("Какие-то неправильные x и y")
else:
    message("Сумма x + y нормальная, равна %i" % (x+y))

Циклы:

for i in range(5):
    message(i+1)
message("Вышел зайчик погулять")

i = 10
while i>=0:
    message(i)
    i -= 1
alert("Пуск!")

Функции:

def f1():
    alert("Функция без параметров")

def f2(x, y):
    alert("Функция с параметрами x=%s, y=%s" % (x,y))
    if x > 5:
        alert("Надо же, параметр x больше 5!")

f1()
f2(3, 4)

Списки:

lst = ["пирожные", "мороженое", "печенье"]
lst.append("конфеты")
for x in lst:
    alert("Хочу %s!" % x)
lst.pop(1)
lst += ["огурцы", "помидоры"]
alert("И еще %s!" % lst[4])
first = lst[0]
last = lst[-1]
first_three = lst[:3]
last_three = lst[-3:]
middle = lst[2:3]

lst = [x for x in range(1,5)]
squared = [y*y for y in lst]
file = [x.strip() for x in open("readme.txt")]
words = "поделим строку на слова по пробелам".split(" ")

Строки:

x = "Василий"
y = "Пупкин"
z = x+y
alert(z)
z = " ".join( [x,y] )
alert(z)

Форматирование строк:

pi = 3.1415926
alert("Число PI с точностью до 2 знаков %0.2f" % pi)
s = "Число PI с точностью до 3 знаков %0.3f" % pi
alert(s)
name = "Vasya"
age = 25
s = "Привет оператор %s, наверно тебе %i лет" % (name, age)
alert(s)

Форматирование времени:

import time
message(time.strftime("%H:%M:%S %d.%m.%Y", time.localtime()))

Лямбда-выражения дают возможность построить вызов функции с использованием локальных переменных. Такой вызов функции можно отдать для использования в будущем. Этот прием полезен при диалоге с пользователем и протяженных по времени операциях:

def hello(name, answer, correct):
    if answer==correct: message("Правильно, %s!" % name)
    else: message("На самом деле будет %s!" % correct)
def check_user_math(name):
    ask("Уважаемый %s, сколько будет 5*5?" % name,
        lambda x: hello(name, x, "25"),
        lambda: message("Опять никто не хочет поговорить с роботом"))
ask("Как вас зовут?", check_user_math, None)

Глобальные переменные понятнее простому человеку чем лямбда-выражения:

def hello(answer):
    global name
    if answer==25: message("Правильно, %s!" % name)
    else: message("На самом деле будет 25!")
def check_user_math(n):
    global name
    name = n
    ask("Уважаемый %s, сколько будет 5*5?" % name,
        hello,
        None)
ask("Как вас зовут?", check_user_math, None)