Я недавно закончил курс по Python около месяца назад. Я продолжаю расширять свои знания о Python, создавая программы.
Приведенный ниже код представляет собой программу для программы обратного отсчета Python. Что делает программа, так это то, что она просит пользователя ввести количество секунд, минут и часов.
В любом случае, я заметил 2 ошибки, которые возникают в программе.
Первая ошибка: если мы вводим счетчик часов и секунд (но не минут), программа будет считать оставшееся время для этого определенного часа, но не будет вычитать час и устанавливать минуты обратно на 59. Вместо этого он будет печатать минуты как отрицательное число.
Вторая ошибка: если мы введем счетчик часов, секунд и минут, программа будет считать оставшееся время. Но когда программа достигает самой последней минуты (т. е. 01:00:59), она пропускает эту минуту и переходит к следующей (т. е. 00:59:59).
О второй ошибке: допустим, я ввожу 1 час, 1 минуту, 5 секунд. Он будет отсчитывать 5 секунд. Затем компьютер печатал 1:00:00. Вместо того, чтобы отсчитывать секунды для этой определенной минуты. Он будет пропущен до 0:59:59. Надеюсь, это поможет. Было бы здорово, если бы я мог получить помощь в исправлении этих двух ошибок и, возможно, способ по-другому отформатировать программу.
Спасибо за прочтение, и я с нетерпением жду вашего ответа, - Аноним.
import time
time_count = 0
second = int(raw_input("Seconds:"))
count_minute = int(raw_input("Minutes:"))
count_hour = int(raw_input("Hours:"))
time_count += second
time_count += count_minute * 60
time_count += count_hour * 3600
def clean():
global second
global count_minute
global count_hour
print_second = str(second).zfill(2)
print_minute = str(count_minute).zfill(2)
print_hour = str(count_hour).zfill(2)
print "%s:%s:%s" % (print_hour, print_minute, print_second)
time.sleep(1)
clean()
time.sleep(1)
for i in range(1, time_count + 1)[::-1]:
if second == 0 and count_minute == 0 and count_hour == 0:
clean()
break
elif second != 0:
second -= 1
elif second == 0:
count_minute -= 1
second = 59
if count_minute == 0 and count_hour > 0:
clean()
count_hour -= 1
count_minute = 59
clean()
time.sleep(1)
print """
Timer Finished.
"""
Jacob Kodner
это просто твой псевдоним, Анонимус? Действительно подлый! - person Henrik Andersson   schedule 25.07.2013