Шпаргалка по Python

How can we help?

Навигация

Циклы

Пример цикла for в Python, переменная musician принимает последовательно значения всех элементов из списка bremen_musicians:

#In
bremen_musicians = ['Трубадур', 'Петух', 'Кот', 'Пёс', 'Осёл']
    print('Представляем музыкантов:')
    for musician in bremen_musicians:
    print(musician)

#Out
Представляем музыкантов:
Трубадур
Петух
Кот
Пёс
Осёл

Как пройтись по числам подряд, range(a, b) возвращает числа от a до b-1.

#In
for i in range(1, 6): # range - диапазон
    print(i)
    print('я иду тебя искать')

#Out
1
2
3
4
5
я иду тебя искать

Функция reversed() «переворачивает» списки и
диапазоны значений:

#In
for i in reversed(range(1, 11)):
    print(i)
    print('Поехали!')

#Out
10
9
8
7
6
5
4
3
2
1
Поехали!

Ветвления

Логические выражения могут принимать логические значения True («истина») и False («ложь»). Условный оператор if для записи ветвления «если – то»:

#в переменной beaufort хранится скорость ветра по шкале Бофорта
if beaufort == 0:
    print('штиль') 

Конструкция if-else для записи ветвления «если – то – иначе»:

if beaufort == 0:
    print('штиль')
else:
    print('есть ветер')

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

if beaufort == 0:
    print('штиль')
elif beaufort == 1:
    print('тихий ветер')
elif beaufort == 2:
    print('лёгкий ветер')
elif beaufort == 3:
    print('слабый ветер')
elif beaufort == 4:
    print('умеренный ветер')
elif beaufort == 5:
    print('свежий ветер')
elif beaufort == 6:
    print('сильный ветер')


Как только выполняется одно из условий — все
нижеследующие elif и else пропускаются.

Логические выражения

Операторы сравнения:

  • равно ==
  • меньше <
  • больше >
  • больше или равно >=
  • меньше или равно <=
  • не равно !=

Логические операторы в порядке приоритета:

  • not («не») — отрицание
  • and («и») — логическое умножение
  • or («или») — логическое сложение
if beaufort == 7 or beaufort == 8:
    print('крепкий ветер')

Функции

Примеры встроенных в Python функций: print(), str(), int(), float(), len().

Создаём свою функцию:

def hello(hour):
    if hour <= 5 or hour >= 23:
        print('Доброй ночи!')
    elif hour >= 6 and hour <= 11:
        print('Доброе утро!')
    elif hour >= 12 and hour <= 17:
        print('Добрый день!')
    elif hour >= 18 and hour <= 22:
        print('Добрый вечер!')

hello(4) # вызов с аргументом 4
hello(10) # вызов с аргументом 10
hello(15) # ещё один вызов функции
hello(20) # и ещё один вызов

Доброй ночи!
Доброе утро!
Добрый день!
Добрый вечер!

Аргументы функции:

# у name -- значение по умолчанию
def say_hello(hour, name=''):
    if hour <= 5 or hour >= 23:
        message = 'Доброй ночи'
    elif hour >= 6 and hour <= 11:
        message = 'Доброе утро'
    elif hour >= 12 and hour <= 17:
        message = 'Добрый день'
    elif hour >= 18 and hour <= 22:
        message = 'Добрый вечер'
    if name != '':
        print(message + ', ' + name + '!')
    else:
        print(message + '!')

say_hello(10, 'Тимур')
say_hello(14, 'Елена')
say_hello(20)

Доброе утро, Тимур!
Добрый день, Елена!
Добрый вечер!

При вызове функции можно явно указывать, какому
аргументу какое значение соответствует. В таком
случае порядок следования аргументов в скобках роли
не играет:

say_hello(hour=10, name='Тимур')
say_hello(name='Елена', hour=14)
say_hello(hour=20)

Доброе утро, Тимур!
Добрый день, Елена!
Добрый вечер!

Возврат значений из функции

# функция для вычисления
# периметра прямоугольника
# от англ. calculate, ”вычислять”
def calc_perimeter(side_a, side_b):
    return (side_a + side_b) * 2
# функция для вычисления
# площади прямоугольника
def calc_square(side_a, side_b):
    return side_a * side_b
# здесь подготовка результата
def show_info(side_a, side_b):
    p = calc_perimeter(side_a, side_b)
    s = calc_square(side_a, side_b)
    text = 'Периметр = ' + str(p) + ' м., '
    text += 'площадь = ' + str(s) + ' кв.м.'
    return text

a = 8
b = 10
print(show_info(a, b))
# можем произвести расчёты
# и для другого прямоугольника
print(show_info(3, 4))

Периметр = 36 м., площадь = 80 кв.м.
Периметр = 14 м., площадь = 12 кв.м.

Если бы мы ошиблись и забыли вернуть строку
text из функции show_info(), то вывод получился бы
странный: None. Это специальное значение в Python,
и оно обозначает… ничего.