Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

README.md

Lab 2: Ветки, циклы, функции и черепаха

Лаба: http://cs.mipt.ru/python/lessons/lab2.html.

В качестве ДЗ достаточно решить четыре задачи: одну по ветвлению (if-else), одну по циклам (for/while), одну по функциям (def) и одну по Черепахе (turtle).

Решение можно оформить в виде одного .ipynb ноутбука (или нескольких .py файлов). И потом файлы решения надо снова залить в свой репозиторий на Гитхабе!

Ветвление (if-else)

Задача В1 (Високосный год1)

Требуется определить, является ли год с данным номером високосным. Если год является високосным, надо вывести "YES", иначе — "NO". (Год является високосным, если его номер кратен 4, но не кратен 100, а также если он кратен 400.)

year = 2023

# Код с if-else по проверке year на високосность
# Результат для приведённого в примере года: NO

Задача В2 (Минимум из трёх2)

Даны три целых числа. Надо вывести значение наименьшего из них.

n1 = 10
n2 = -10
n3 = 0

# Код с if-else конструкциями
# Результат для приведённых в примере трёх чисел: -10

Задача В3 (Что сегодня надеть?)

Когда Маша выбирает, что ей сегодня надеть, она руководствуется многими вещами. Куда пойдёт, что носила вчера, какое вообще сегодня настроение и ещё много чего. И, конечно, на выбор одежды во многом влияет погода. Помогите Маше — напишите программу, которая в зависимости от погоды даст ей правильную рекомендацию по тому, в чём (или с чем) стоит сегодня идти на улицу.

Программа должна учитывать два показателя: "температуру" (количество градусов; число) и "дождь" (как ответ на вопрос, будет ли сегодня дождь; правда или ложь, то есть булевское значение). Если температура меньше 15 градусов, то программа должна посоветовать Маше надеть куртку ("с курткой"), иначе — не надо куртку ("без куртки"). Если ожидается дождь, то Маше надо взять с собой зонтик ("с зонтом"), иначе — не надо ("без зонта").

Температуру и наличие/отсутствие дождя можно задать в самой программе (проинициализировать соответствующие две переменные).

Пример:

temperature = 15
is_rain = False

# Код с if-else по проверке условий на температуру и дождь
# Результат для примера: "без куртки, без зонта"

Задача В4 (Цвет волос)

#021199 #b00000 #f2f2f2 #7f00a6

У Маши есть такая традиция: осенью она красит волосы в синий цвет ("blue"), зимой в красный ("red"), весной в белый ("white"), а летом в фиолетовый ("violet").

Напишите программу, которая в зависимости от текущего на момент вызова программы времени года говорит, какого цвета у Маши волосы.

Например — сейчас осень, поэтому вызов программы должен завершиться выводом на экран строки "blue". (А если вызвать ту же самую, без каких-либо изменений, программу зимой — получится "red".)

Циклы (for/while)

Задача Ц1 (Факториал3)

Не пользуясь никамими специальными математическими функциями Питона (например, из библиотеки math) для данного числа $n$ вычислите его факториал $n!$ (Факториал натурального числа $n$ — это произведение всех натуральных чисел от $1$ до $n$.)

n = 3

# Код, с помощью цикла считающий факториал
# Результат для примера: 6

Задача Ц2 (Divisibles)

Среди чисел от 1 до 100 выведите те, которые делятся нацело на 2 или на 3.

# Код с циклом
# Вывод: 2, 3, 4, 6, 8, ...

Задача Ц3 (Звёздочки)

Для всех целых чисел $n$ из отрезка от 1 до 10 надо вывести на экран строку символов "*" в количестве $n$ штук:

*
**
***
****
*****
******
*******
********
*********
**********

Задача Ц4 (Pop Songs Constructor)

Популярные песни часто сильно повторяются.

Напишите программу-конструктор популярной песни. Песня должна строиться по следующему алгоритму: строчка куплета, за ним припев, и так три раза. Причём припев состоит из одной и той же строки текста, продублированной тоже три раза. Например:

verse = 'Иду один в ночи, оставил всё позади'
chorus = 'Я ёжик в тумане любви'

# Код с циклами

Результат:

Иду один в ночи, оставил всё позади

Я ёжик в тумане любви
Я ёжик в тумане любви
Я ёжик в тумане любви

Иду один в ночи, оставил всё позади

Я ёжик в тумане любви
Я ёжик в тумане любви
Я ёжик в тумане любви

Иду один в ночи, оставил всё позади

Я ёжик в тумане любви
Я ёжик в тумане любви
Я ёжик в тумане любви

Задача Ц5 (Корень уравнения)

Дано уравнение:

$$ x^2 - 4.5 x - 227.5 $$

Найдите все его целые корни "методом перебора". То есть надо просто проверить каждое целое число из некоторого большого промежутка (например, $[-100, 100]$) на то, является ли оно корнем уравнения.

Функции (def)

Задача Ф1 (Сумма квадратов)

Напишите функцию, которая считает сумму квадратов всех чисел от 1 до $n$ (где $n$ — параметр функции):

def f(n):
    # Тело функции...

print(f(2))  # 5 (1^2 + 2^2 = 5)

Задача Ф2 (Минимум4)

Напишите функцию, возвращающую минимум из двух чисел (то есть функция от двух параметров):

def minimum(n1, n2):
    # Код, возвращающий минимум из n1 и n2

print(minimum(100, 17.5))  # 17.5

Задача Ф3 (Approx π)

Напишите функцию, позволяющую получить приближённое значение числа π с помощью суммы большого числа слагаемых, рассчитываемых по специальной формуле (предлагается использовать ряд Лейбница). Функция должна принимать на вход один параметр n — количество членов в сумме (чем больше $n$, тем точнее получится значение числа π, но и работать программа будет дольше).

def estimate_pi(n):
    # Код функции...

print(estimate_pi(1))  # 4 (4 * 1)
print(estimate_pi(2))  # 2.667 (4 * (1 - 1/3))
print(estimate_pi(3))  # 3.467 (4 * (1 - 1/3 + 1/5))

Задача Ф4 (Mr or Ms)

Напишите функцию, которая по имени человека определяет его пол. Функция должна принимать на вход один параметр name и возвращать строку "Ms" или "Mr":

def guess_gender(name):
    # Код функции...

print(guess_gender("Маша"))  # Ms
print(guess_gender("Настя"))  # Ms
print(guess_gender("Вероника"))  # Ms
print(guess_gender("Александр"))  # Mr
print(guess_gender("Константин"))  # Mr

P.S.

Достаточно, чтобы программа правильно работала лишь на приведённых примерах. Но попытка предложить более общее решение приветствуется)

Черепаха (turtle)

Задачи по Черепашке из лабы (упражнения 2 – 14).

Footnotes

  1. https://pythontutor.ru/lessons/ifelse/problems/leap_year.

  2. https://pythontutor.ru/lessons/ifelse/problems/minimum3.

  3. https://pythontutor.ru/lessons/for_loop/problems/factorial.

  4. https://pythontutor.ru/lessons/ifelse/problems/minimum.