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,
и оно обозначает… ничего.