Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions lesson_1/hometask/task_1.py
Original file line number Diff line number Diff line change
@@ -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"]))
18 changes: 18 additions & 0 deletions lesson_1/hometask/task_2.py
Original file line number Diff line number Diff line change
@@ -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}")
9 changes: 9 additions & 0 deletions lesson_1/hometask/task_3.py
Original file line number Diff line number Diff line change
@@ -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}")
16 changes: 16 additions & 0 deletions lesson_1/hometask/task_4.py
Original file line number Diff line number Diff line change
@@ -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}")
33 changes: 33 additions & 0 deletions lesson_1/hometask/task_5.py
Original file line number Diff line number Diff line change
@@ -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")
35 changes: 35 additions & 0 deletions lesson_1/hometask/task_6.py
Original file line number Diff line number Diff line change
@@ -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")