Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Python цикл while, и for

Артём Бочаров Ученик (171), на голосовании 2 недели назад
Описание задачи:
Разработайте программу для учёта времени учебы за неделю. Программа должна
позволять пользователю ввести количество учебных дней (не более семи), а затем для
каждого дня вводить количество часов, посвящённых учёбе. Программа должна
обрабатывать ошибки ввода, такие как ввод нечисловых значений и отрицательных
чисел, и запрашивать повторный ввод при необходимости.


Указания:
1. Используйте цикл while для запроса количества учебных дней, обеспечивая,
чтобы количество дней не превышало семь и было положительным числом.
2. Используйте цикл for для запроса количества часов учебы в каждый из
указанных дней.
3. Примените блоки try и except для обработки исключений при вводе количества
часов, убедитесь, что введены только положительные числа.
4. В случае ошибки ввода запросите данные повторно, пока не будут получены
корректные значения.


Спасибо за внимание
Голосование за лучший ответ
Вениамин Крайнюк Ученик (128) 1 месяц назад
def main():
while True:
try:
days = int(input("Введите количество учебных дней (1-7): "))
if 1 <= days <= 7:
break
else:
print("Пожалуйста, введите число от 1 до 7.")
except ValueError:
print("Это не число. Пожалуйста, введите целое число.")

study_hours = []
for day in range(1, days + 1):
while True:
try:
hours = float(input(f"Введите количество часов учебы для дня {day} (не отрицательное число): "))
if hours >= 0:
study_hours.append(hours)
break
else:
print("Пожалуйста, введите неотрицательное число.")
except ValueError:
print("Это не число. Пожалуйста, введите число.")

print("\nУчебное время за неделю:")
for day in range(1, days + 1):
print(f"День {day}: {study_hours[day - 1]} часов")

total_hours = sum(study_hours)
print(f"Общее количество часов учебы за неделю: {total_hours} часов")

if __name__ == "__main__":
main()

вроде даже кампелируется
S.H.I. Оракул (73305) 1 месяц назад
 while True: 
try:
days = int(input("Введите количество учебных дней (от 1 до 7): "))
if not 1 <= days <= 7:
raise ValueError
except ValueError:
print("Некорректный ввод. Введите целое число от 1 до 7.")
continue
break

total_hours = 0
for day in range(1, days + 1):
while True:
try:
hours = float(input(f"Введите количество часов учёбы для дня {day}: "))
if hours <= 0:
raise ValueError
except ValueError:
print("Некорректный ввод. Введите положительное число часов.")
continue
break
total_hours += hours

print("Общее количество часов учёбы за неделю:", total_hours)
Похожие вопросы