diff --git a/lesson_1/hometask/task_1.py b/lesson_1/hometask/task_1.py new file mode 100644 index 0000000..b607e68 --- /dev/null +++ b/lesson_1/hometask/task_1.py @@ -0,0 +1,31 @@ +# Поработайте с переменными, +# создайте несколько, +# выведите на экран, +# запросите у пользователя несколько +# чисел и +# строк и +# сохраните в переменные, +# выведите на экран. + +# Пример ужасен, не включает в себя ни одной проверки и написан только для тренировки +scaring_facts_dict = {"hyena": "cat", "fox": "dog"} +universal_phrase = "{0} is a {1} software running on {2}s hardware" +types = set(scaring_facts_dict.values()) +lookup = "fox" +mytype = scaring_facts_dict[lookup] +sometypes = types.copy() +sometypes.discard(mytype) +print(universal_phrase.format(lookup, sometypes.pop(), mytype)) +lookup = "hyena" +mytype = scaring_facts_dict[lookup] +sometypes = types.copy() +sometypes.discard(mytype) +print(universal_phrase.format(lookup, sometypes.pop(), mytype)) + +user_name = input("What's your name, user? >>>") +user_nick = input(f"What's your nickname, {user_name}? >>>") +user_numbers_dict = {"favorite number": int(input(f"What's your favorite number, {user_name}? >>>")), + "odious number": int(input(f"What's your odious number, {user_name}? >>>"))} +print("Ok, {0} (aka {1}), you prefer number {2} and you afraid number {3}".format(user_name, user_nick, + user_numbers_dict["favorite number"], + user_numbers_dict["odious number"])) diff --git a/lesson_1/hometask/task_2.py b/lesson_1/hometask/task_2.py new file mode 100644 index 0000000..753390d --- /dev/null +++ b/lesson_1/hometask/task_2.py @@ -0,0 +1,18 @@ +# Пользователь вводит время в секундах. +# Переведите время в часы, минуты и секунды и выведите в формате чч:мм:сс. +# Используйте форматирование строк. + +time_in_seconds = float(input("Set time in seconds, please >>>")) +hour_in_a_day = 24.0 +minutes_in_a_hour = 60.0 +seconds_in_a_minute = 60.0 +# дни нас не интересуют +lost_time = time_in_seconds % (hour_in_a_day * minutes_in_a_hour * seconds_in_a_minute) +# часы интересуют +hours = int(lost_time // (minutes_in_a_hour * seconds_in_a_minute)) +lost_time %= (minutes_in_a_hour * seconds_in_a_minute) +# минуты интересуют +minutes = int(lost_time // (seconds_in_a_minute)) +seconds = lost_time % seconds_in_a_minute +# вывод в требуемом формате чч:мм:сс +print(f"{hours:02}:{minutes:02}:{seconds:02.0f}") diff --git a/lesson_1/hometask/task_3.py b/lesson_1/hometask/task_3.py new file mode 100644 index 0000000..46f3a84 --- /dev/null +++ b/lesson_1/hometask/task_3.py @@ -0,0 +1,9 @@ +# Узнайте у пользователя число n. +# Найдите сумму чисел n + nn + nnn. +# Например, пользователь ввёл число 3. Считаем 3 + 33 + 333 = 369. + +str_number = input("Set number >>>>") +number = int(str_number) +double_num = number * 10 ** len(str_number) + number +triple_num = number * 10 ** (len(str_number) * 2) + double_num +print(f"{number} + {double_num} + {triple_num} = {number + double_num + triple_num}") diff --git a/lesson_1/hometask/task_4.py b/lesson_1/hometask/task_4.py new file mode 100644 index 0000000..188a201 --- /dev/null +++ b/lesson_1/hometask/task_4.py @@ -0,0 +1,16 @@ +# Пользователь вводит целое положительное число. +# Найдите самую большую цифру в числе. +# Для решения используйте цикл while и арифметические операции. + +str_number = input("Enter the whole number >>>") +number = int(str_number) +assert (number >= 0) +count = len(str_number) +max_number = 0 +while count > 0: + count -= 1 + current_number = number // 10 ** count + number -= current_number * 10 ** count + if current_number > max_number: + max_number = current_number +print(f"max number is {max_number}") diff --git a/lesson_1/hometask/task_5.py b/lesson_1/hometask/task_5.py new file mode 100644 index 0000000..1ce8a32 --- /dev/null +++ b/lesson_1/hometask/task_5.py @@ -0,0 +1,33 @@ +# Запросите у пользователя значения выручки и издержек фирмы. +# Определите, с каким финансовым результатом работает фирма +# (прибыль — выручка больше издержек, или убыток — издержки больше выручки). +# Выведите соответствующее сообщение. +# Если фирма отработала с прибылью, вычислите рентабельность выручки +# (соотношение прибыли к выручке). +# Далее запросите численность сотрудников фирмы и +# определите прибыль фирмы в расчете на одного сотрудника. + +revenue = float(input("Enter the revenue, please >>>>")) +costs = float(input("Enter the costs, please >>>>")) +while costs < 0: + # издержки не бывают отрицательными + print("Costs never be below zero!") + costs = float(input("Enter the costs, please >>>>")) +if revenue > costs: + print("Great! You have a profit") + # так как нет значений по умолчанию для + # рентабельности и прибыли на сотрудника, + # данные переменные только в рамках данного блока if + return_on_revenue = (revenue - costs)/revenue + print(f"Return on revenue is {return_on_revenue}") + units_number = int(input("Enter the company's units number >>>>")) + # сотрудников не может быть меньше 0 + while units_number <= 0: + print("Units number never be below zero or zero, you are unit!") + units_number = int(input("Enter the company's units number >>>>")) + revenue_per_unit = (revenue - costs)/units_number + print(f"Revenue per unit is {revenue_per_unit}") +elif revenue < costs: + print("Sad but you have a loss") +else: + print("You didn't earn anything, but nothing lost too") \ No newline at end of file diff --git a/lesson_1/hometask/task_6.py b/lesson_1/hometask/task_6.py new file mode 100644 index 0000000..9137f6e --- /dev/null +++ b/lesson_1/hometask/task_6.py @@ -0,0 +1,35 @@ +# Спортсмен занимается ежедневными пробежками. +# В первый день его результат составил a километров. +# Каждый день спортсмен увеличивал результат на 10 % относительно предыдущего. +# Требуется определить номер дня, на который результат спортсмена составит не менее b километров. +# Программа должна принимать значения параметров a и b и выводить одно натуральное число — +# номер дня. Например: a = 2, b = 3. +# Результат: +# 1-й день: 2 +# 2-й день: 2,2 +# 3-й день: 2,42 +# 4-й день: 2,66 +# 5-й день: 2,93 +# 6-й день: 3,22 +# Ответ: на 6-й день спортсмен достиг результата — не менее 3 км. + +first_day_result = float(input("Enter first day kilometers result >>>>")) +while first_day_result <= 0.0: + print("Kilometers must be more than 0") + first_day_result = float(input("Enter first day kilometers result >>>>")) + +last_day_result = float(input("Enter reaching kilometers >>>>")) +while last_day_result < 0.0: + print("Kilometers must be more than 0") + last_day_result = float(input("Enter reaching kilometers >>>>")) + +current_result = first_day_result +day_number = 1 +while True: + print(f"Result {current_result} at {day_number} day") + if not current_result < last_day_result: + break + current_result *= 1.1 + day_number += 1 + +print(f"Result more than {last_day_result} km reached at {day_number} day") \ No newline at end of file