Задание 1 (весеннее)
С приходом весны питон решил каждый день выползать погреться на солнышко. Однако он знал, что
солнце весной довольно активное, и поэтому разработал такую схему: в первый день он греется одну
минуту, а в каждый последующий день увеличивает время пребывания на солнце на 3 минуты.
Напишите код, который позволит вычислять, сколько минут питон будет тратить на солнечные ванны в
некоторый выбранный день.
Внимание: ваш код должен выводить номер дня и число минут. Использовать циклы нельзя, в задании
предполагается многократный запуск ячеек с кодом.
d = int(input("Введите номер дня: "))
min = 1 + (d - 1) * 3
print(f"День {d}: Питон греется {min} минут")
Задание 2 (приветственное)
Напишите программу, которая запрашивает у пользователя имя и фамилию и выводит на экран
сообщение
Имя Фамилия, добро пожаловать!
fn = input("Введите ваше имя: ")
ln = input("Введите вашу фамилию: ")
print(f"{fn} {ln}, добро пожаловать!")
Задание 3 (кулинарно-политологическое)
Перед вами шаблон рецепта жизни политолога на факультете социальных наук:
…
Напишите код, который делает следующее: запрашивает у пользователя названия курсов (три отдельных вопроса), а потом подставляет их в имеющийся шаблон.
crs1 = input("Введите название первого курса: ")
crs2 = input("Введите название второго курса: ")
crs3 = input("Введите название третьего курса: ")
print("\nРецепт")
print(f"{crs1} : 200 г")
print(f"{crs2} : 300 г")
print(f"{crs3} : 100 г")
print("Приправить политической историей. Добавить математические модели по вкусу.")
Задание 4 (кулинарно-математическое)
У вас есть шаблон, похожий на шаблон рецепта из предыдущей задачи:
Напишите программу, которая запрашивает у пользователя три значения массы ингредиентов в граммах (три вопроса), переводит их в килограммы и подставляет полученные значения в шаблон так, чтобы числа содержали ровно 3 знака после запятой.
gr1 = float(input("Введите массу первого ингредиента (в граммах): "))
gr2 = float(input("Введите массу второго ингредиента (в граммах): "))
gr3 = float(input("Введите массу третьего ингредиента (в граммах): "))
kg1 = gr1 / 1000
kg2 = gr2 / 1000
kg3 = gr3 / 1000
print("\nРецепт")
print(f"политическая теория : {kg1:.3f} кг")
print(f"история политических учений: {kg2:.3f} кг")
print(f"математика: {kg3:.3f} кг")
print("Приправить политической историей. Добавить математические модели по вкусу.")
Семинар 2
Задача 1
Напишите программу, которая запрашивает у пользователя его фамилию, имя, отчество, введенные в
одну строчку через пробел, и выводит на экран сообщения:
Ваша фамилия: фамилия
Ваше имя: имя
Ваше отчество: отчество
fullname = input("Введите Ваши ФИО: ")
l_name, f_name, otch = fullname.split()
print(f"Ваша фамилия: {l_name}")
print(f"Ваше имя: {f_name}")
print(f"Ваше отчество: {otch}")
Задача 2
Напишите программу, которая берет строку "1; 2; 3; 100" и возвращает:
• список из целых чисел
• список из чисел с плавающей точкой
string = "1; 2; 3; 100"
int = [int(num) for num in string.split("; ")]
print("Список целых чисел:", int)
string = "1; 2; 3; 100"
float = [float(num) for num in string.split("; ")]
print("Список чисел с плавающей точкой:", float)
Задача 3
Напишите программу, которая запрашивает у пользователя номер мобильного телефона, введенный через дефис, а возвращает номер, записанный без дефисов и пробелов.
phn = input("Введите номер телефона через дефис: ")
clnn = phn.replace("-", "").replace(" ", "")
print("Номер телефона без дефисов и пробелов:", clnn)
Задача 4
Напишите программу, которая принимает на вход список L, в котором хранятся значения доходов домохозяйств за месяц, а возвращает новый список L2 ‒ список логарифмированных значений доходов.
import math
L = list(map(float, input("Введите доходы домохозяйств через пробел: ").split()))
L2 = [math.log(income) for income in L]
print("Логарифмированные значения доходов:", L2)
Задача 5
Напишите программу, которая принимает на вход список слов такого вида:
words = ["Speak ","to", "me ", "of", "Florence" ,"And ", "of", "the", "Renaissance"]
а возвращает список
words_clean = ["speak", "to", "me", "of", "florence", "and", "of", "the", "renaissance"]
words = ["Speak ", "to", "me ", "of", "Florence", "And ", "of", "the", "Renaissance"]
words_clean = [word.strip().lower() for word in words]
print("Очищенный список слов:", words_clean)
Семинар 3
Задача 1
Напишите программу, которая просит пользователя ввести положительное число, и если пользователь вводит положительное число, выводит на экран сообщение "Молодец!", если нет ‒ "Это не положительное число.". Считайте, что пользователь в любом случае вводит числа, а не какой-то текст
number = float(input("Введите положительное число: "))
if number > 0:
print("Молодец!")
else:
print("Это не положительное число.")
Задача 2
Напишите программу, которая принимает на вход список оценок студентов от 1 до 10, выводит на экран оценку, а после нее, с новой строки, комментарий "Плохо", "Удовлетворительно", "Хорошо", "Отлично" в зависимости от оценки.
grades = list(map(int, input("Введите оценки студентов от 1 до 10 через пробел: ").split()))
for grade in grades:
print(grade)
if 1 <= grade <= 3:
print("Плохо")
elif 4 <= grade <= 5:
print("Удовлетворительно")
elif 6 <= grade <= 8:
print("Хорошо")
elif 9 <= grade <= 10:
print("Отлично")
else:
print("Такой оценки не существует")
Задача 3
Напишите программу, которая запрашивает у пользователя пароль, и далее: если пароль верный, выводит на экран сообщение "Login success".
если пароль неверный, выводит на экран сообщение "Incorrect password, try again!" до тех пор, пока пользователь не введет верный пароль.
correct_password = 12345
while True:
password = int(input("Введите пароль: "))
if password == correct_password:
print("Login success")
break
else:
print("Incorrect password, try again!")
Задача 4
У питона есть набор любимых чисел. favorites = [3, 7, 11, 23, 18, 48, 81] Напишите программу, которая просит пользователя ввести целое число, и если оно нравится питону, на экран будет выводиться сообщение: "Мое любимое число!", если нет ‒ "Эх, ну почему?"
favorites = [3, 7, 11, 23, 18, 48, 81]
number = int(input("Введите целое число: "))
if number in favorites:
print("Мое любимое число!")
else:
print("Эх, ну почему?")
Задача 5
Напишите программу, которая просит пользователя ввести число и, если оно чётное, выводит на экран сообщение: "Это число чётное", если нечётное ‒ "Это число нечётное"
number = int(input("Введите число: "))
if number % 2 == 0:
print("Это число чётное")
else:
print("Это число нечётное")
Задача 6
Напишите программу, которая просит пользователя ввести существительное, и если слово введено с большой буквы, то на экран выводится сообщение "Это имя собственное.", если с маленькой сообщение "Это имя нарицательное".
word = input("Введите существительное: ")
if word[0].isupper():
print("Это имя собственное.")
else:
print("Это имя нарицательное.")
Семинар 4 по темам: кортежи и словари
Задача 1
Дан словарь с названиями разных рептилий:
In [4]:
1 rept = {"python" : " питон",
2 "anaconda" : "анаконда",
3 "tortoize" : " черепаха" }
Добавьте в словарь пару "snake" - " змея".
Исправьте ключ "tortoize" на правильный "tortoise".
Выведите на экран сообщения вида
Питон по-английски будет python.
для всех слов в словаре (сообщение для каждого слова ‒ с новой строчки).
rept = {
"python": "питон",
"anaconda": "анаконда",
"tortoize": "черепаха"
}
rept["snake"] = "змея"
rept["tortoise"] = rept.pop("tortoize")
for eng, rus in rept.items():
print(f"{rus.capitalize()} по-английски будет {eng}.")
Задача 2
В списке cnt хранятся названия стран, а в списке fh – значения индекса Freedom House для этих стран. Создайте словарь, используя в качестве ключей названия стран, а в качестве значений
значения индекса.
In [5]:
1 cnt = ["Andorra", "Belarus", "Denmark",
2 "Kenya", "Jamaica", "Romania"]
3 fh = [1.0, 6.0, 1.0, 4.0, 2.5, 2.0]
cnt = ["Andorra", "Belarus", "Denmark", "Kenya", "Jamaica", "Romania"]
fh = [1.0, 6.0, 1.0, 4.0, 2.5, 2.0]
country_index = dict(zip(cnt, fh))
print(country_index)
Задача 3
Дан список, состоящий из пар чисел:
In [6]:
1 pairs = [(2, 4), (4, 6), (0, 1), (5, 2), (9, 1), (3, 8)]
Создайте словарь calc , где ключами являются пары чисел, а значениями – их произведение (произведение тоже должно считаться в Python, не в уме).
pairs = [(2, 4), (4, 6), (0, 1), (5, 2), (9, 1), (3, 8)]
calc = {}
for a, b in pairs:
calc[(a, b)] = a * b
print(calc)
Задача 4
Дан словарь grades с оценками студентов за контрольную работу в 5-балльной шкале. Напишите код, который сделает следующее:
Выведет на экран имя каждого студента и его оценку (каждый студент – с новой строки).
Сохранит имена студентов, получивших отличные оценки, в список excel . Сохранит имена студентов, получивших хорошие оценки, в список good . Сохранит имена студентов, получивших удовлетворительные оценки, в список satisf . Сохранит имена студентов, получивших плохие оценки, в список bad .
In [1]:
1 grades = {'Anna': 4, 'Bob': 3, 'Claire': 5, 'Dick': 2, 'Elena': 5,
2 'Fred': 5, 'George': 4, 'Kristina': 3, 'Nick': 2,
3 'Ursula': 4, 'Viktor': 5}
grades = {'Anna': 4, 'Bob': 3, 'Claire': 5, 'Dick': 2, 'Elena': 5,
'Fred': 5, 'George': 4, 'Kristina': 3, 'Nick': 2,
'Ursula': 4, 'Viktor': 5}
excel = []
good = []
satisf = []
bad = []
for student, grade in grades.items():
print(f'{student}: {grade}')
if grade == 5:
excel.append(student)
elif grade == 4:
good.append(student)
elif grade == 3:
satisf.append(student)
else:
bad.append(student)
print("\nСтуденты получившие отличные оценки:", excel)
print("Студенты получившие хорошие оценки:", good)
print("Студенты получившие удовлетворительные оценки:", satisf)
print("Студенты получившие плохие оценки:", bad)
Семинар 5
Задача 1
Напишите функцию square() , которая принимает на вход число и:
возвращает его квадрат;
выводит на экран сообщение вида "Квадрат числа равен: n" и ничего не возвращает;
выводит на экран сообщение вида "Квадрат числа равен: n" и возвращает квадрат числа;
Задача 2
Напишите функцию nums() , которая принимает на вход целое число, а возвращает список из двух элементов: целое число, предшествующее принятому на вход, и число, следующее за ним.
Пример:
Входные данные:
7
Выходные данные:
[6, 8]
Задача 3
Напишите функцию str_lower() , которая принимает на вход строку (набор слов через пробел), а возвращает список ее элементов в нижнем регистре.
Пример:
Входные данные:
"В лесу родилась ёлочка В лесу она росла"
Выходные данные:
['в', 'лесу', 'родилась', 'ёлочка', 'в', 'лесу', 'она', 'росла']
Задача 4
Напишите функцию my_log() , которая принимает на вход список чисел, и возвращает список их натуральных логарифмов. Если число меньше или равно 0, на его месте в возвращаемом списке должно быть None.
Пример:
Входные данные:
[1, 3, 2.5, -1, 9, 0, 2.71]
Выходные данные:
[0.0,
1.0986122886681098,
0.9162907318741551,
None,
2.1972245773362196,
None,
0.9969486348916096]
Задача 5
Напишите функцию, которая принимает на вход два списка (имена людей и их возраст) и делает следующее:
если эти два списка имеют одинаковую длину, то возвращает словарь с парами имя-возраст;
если эти два списка имеют разную длину, то функция выводит на экран сообщение "Списки имеют разную длину" и возвращает пустой словарь.
Пример:
Входные данные:
["Ann", "Tim", "Sam"]
[12, 23, 17]
Выходные данные:
{"Ann": 12, "Tim": 23, "Sam": 17}
Входные данные:
["Ann", "Tim", "Sam"]
[12, 23, 17, 45]
Выходные данные:
Списки имеют разную длину
{}
Задача 6
Напишите функцию binom_prob() , которая считает вероятность того, что проведя n испытаний
Бернулли с вероятностью успеха p , мы получим ровно k успехов. Эта функция принимает на вход три
аргумента: p , n и k и возвращает такой результат:
Для расчета биномиального коэффициента можно использовать функцию, написанную на лекции.
