diff --git a/.gitignore b/.gitignore index b6e4761..715b946 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ +.idea + # Byte-compiled / optimized / DLL files __pycache__/ *.py[cod] diff --git a/lesson01.py b/lesson01.py new file mode 100644 index 0000000..2fd3a2d --- /dev/null +++ b/lesson01.py @@ -0,0 +1,205 @@ +# Lesson 1 +from datetime import date + +current_date = date.today() + +# 1. Поработайте с переменными, создайте несколько, выведите на экран. Запросите у пользователя некоторые числа и строки и сохраните в переменные, затем выведите на экран. +print("==================== 1 ====================") +print("Задача: Поработайте с переменными, создайте несколько, выведите на экран. Запросите у пользователя некоторые числа и строки и сохраните в переменные, затем выведите на экран.") +print("===========================================") +print("Добро пожаловать в конструктор резюме!") +first_name = input('Введите Ваше имя: ') +last_name = input('Введите Вашу фамилию: ') +patronymic = input('Введите Ваше отчество: ') +age = 0 +while True: + try: + age = abs(int(input('Введите Ваш возраст: '))) + break + except Exception as e: + print('Вы ввели неверное число! Попробуйте снова.') + +position = input('Введите желаемую должность: ') +salary = 0.00 +while True: + try: + salary = float(input('Введите желаемый Вами доход (зп) в рублях: ')) + break + except Exception as e: + print('Вы ввели неверное число! Попробуйте снова.') +skills = input('Введите Ваши навыки и умения: ') + +print("") +print("============ Резюме ============") +print("ФИО: {1} {0} {2}".format(first_name, last_name, patronymic)) +print("Возраст: %d; Год рождения: %d" % (age, current_date.year - age)) +print(f"Желаемая должность: {position}") +print("Желаемая заработная плата: {:0.2f} р.".format(salary)) +print("Навыки и умения: "+skills) +print("") +print("Дата создания: "+str(current_date)) + +input('Нажмите любую клавишу для продолжения...') + +# 2. Пользователь вводит время в секундах. Переведите время в часы, минуты, секунды и выведите в формате чч:мм:сс. Используйте форматирование строк. +print("==================== 2 ====================") +print("Задача: Пользователь вводит время в секундах. Переведите время в часы, минуты, секунды и выведите в формате чч:мм:сс. Используйте форматирование строк.") +print("===========================================") +secs = 0 +while True: + try: + secs = abs(int(input('Введите время в секундах: '))) + break + except Exception as e: + print('Вы ввели неверное число! Попробуйте снова.') + +hours = secs // 3600 +minutes = secs % 3600 // 60 +seconds = secs % 3600 % 60 +print(f"Введенное время: {hours:02}:{minutes:02}:{seconds:02}") + +input('Нажмите любую клавишу для продолжения...') + +# 3. Узнайте у пользователя число n. Найдите сумму чисел n + nn + nnn. Например, пользователь ввёл число 3. Считаем 3 + 33 + 333 = 369. +print("==================== 3 ====================") +print("Задача: Узнайте у пользователя число n. Найдите сумму чисел n + nn + nnn. Например, пользователь ввёл число 3. Считаем 3 + 33 + 333 = 369. ") +print("===========================================") + +n = 0 +while True: + try: + n = abs(int(input('Введите число: '))) + break + except Exception as e: + print('Вы ввели неверное число! Попробуйте снова.') + +def get_str_multiplied_number_sum(num: int, cnt: int): + sum = 0 + s = "" + i = 1 + while i <= cnt: + if i > 1: + s += f" + " + s += f"{get_str_multiplied_number(num, i)}" + sum += get_str_multiplied_number(num, i) + i += 1 + s += f" = {sum}" + return s + +def get_str_multiplied_number(num: int, cnt: int): + if cnt <= 1: + return num + return int(str(num) * cnt) + +print(f"Введенное Вами число: {n}") +print(get_str_multiplied_number_sum(n, 3)) + +input('Нажмите любую клавишу для продолжения...') + +# 4. Пользователь вводит целое положительное число. Найдите самую большую цифру в числе. Для решения используйте цикл while и арифметические операции. +print("==================== 4 ====================") +print("Задача: Пользователь вводит целое положительное число. Найдите самую большую цифру в числе. Для решения используйте цикл while и арифметические операции.") +print("===========================================") +n = 0 +while True: + try: + n = abs(int(input('Введите число: '))) + break + except Exception as e: + print('Вы ввели неверное число! Попробуйте снова.') + +c = 0 +while n > 0: + b = n % 10 + if b > c: + c = b + n = n // 10 +print(f"Самое большая цифра: {c}") + +input('Нажмите любую клавишу для продолжения...') + +# 5. Запросите у пользователя значения выручки и издержек фирмы. Определите, с каким финансовым результатом работает фирма. +# Например, прибыль — выручка больше издержек, или убыток — издержки больше выручки. Выведите соответствующее сообщение. +print("==================== 5 ====================") +print("Задача: Запросите у пользователя значения выручки и издержек фирмы. Определите, с каким финансовым результатом работает фирма. Например, прибыль — выручка больше издержек, или убыток — издержки больше выручки. Выведите соответствующее сообщение.") +print("===========================================") +dbt = 0.00 +while True: + try: + dbt = abs(float(input('Введите доходы организации в рублях: '))) + break + except Exception as e: + print('Вы ввели неверное число! Попробуйте снова.') + +cdt = 0.00 +while True: + try: + cdt = abs(float(input('Введите издержки организации в рублях: '))) + break + except Exception as e: + print('Вы ввели неверное число! Попробуйте снова.') + +if dbt > cdt: + d = float(dbt - cdt) + print("Прибыль: Ваши доходы превысили издержки на {:0.2f}р.".format(d)) + r = d / dbt * 100 + print("Рентабельность составила {:0.2f}% ".format(r)) + cnt = 0. + while True: + try: + cnt = abs(int(input('Введите количество сотрудников: '))) + break + except Exception as e: + print('Вы ввели неверное число! Попробуйте снова.') + dcnt = d / cnt + print("Прибыль на одного сотрудника составила {:0.2f}р. ".format(dcnt)) +elif dbt == cdt: + print("Ваши доходы и издержки равны. Вы вышли в 0.") +else: + d = float(cdt - dbt) + print("Убыток: Ваши издержки превысили доходы на {:0.2f}р.".format(d)) + +input('Нажмите любую клавишу для продолжения...') + +# 6. Спортсмен занимается ежедневными пробежками. В первый день его результат составил 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 +# Ответ: на шестой день спортсмен достиг результата — не менее 3 км. +print("==================== 6 ====================") +print("Задача: Спортсмен занимается ежедневными пробежками. В первый день его результат составил a километров. Каждый день спортсмен увеличивал результат на 10% относительно предыдущего. Требуется определить номер дня, на который результат спортсмена составит не менее b километров. Программа должна принимать значения параметров a и b и выводить одно натуральное число — номер дня.") +print("===========================================") +a = 0.00 +while True: + try: + a = abs(float(input('Введите начальный результат спортсмена в км: '))) + break + except Exception as e: + print('Вы ввели неверное число! Попробуйте снова.') + +b = 0.00 +while True: + try: + b = abs(float(input('Введите необходимый результат/цель в км: '))) + break + except Exception as e: + print('Вы ввели неверное число! Попробуйте снова.') +d = 1 +while a < b: + print(f"{d}-й день: {a:.2f} км") + percent = a / 100 * 10 + a = a + percent + d += 1 +print(f"{d}-й день: {a:.2f} км") +print(f"Ответ: на {d} день спортсмен достиг результата — не менее {b:.2f} км") + +print("Все задания выполнены. Благодарю за потраченное Вами время.")