Как я могу позволить пользователям вводить свои собственные значения для текущего времени при программировании часов на python? - PullRequest
0 голосов
/ 28 января 2019

После контакта с агентом по набору учеников, мне было дано задание уйти и запрограммировать свои часы.В настоящее время у меня есть рабочие часы, но я все еще не удовлетворен, так как текущее время должно быть внедрено в программу, чтобы оно работало как используемые часы, тогда как я бы предпочел, чтобы пользователь мог сделать это, чтобы сделать его более удобным для пользователя.

Я попытался удалить, где предварительно заданы часы, минуты и секунды, заменив его следующим:

hours = input("Set the amount of hours\n")
minutes = input("Set the amount of minutes\n")
seconds = input("Set the amount of seconds\n")

Однако это приводит к ошибке: 'TypeError: Can't convert' int'object to strlicitly'

Открывает часы с заданным временем, как запланировано, однако с этого времени отсчет времени не начинается.

hours = input("Set the amount of hours\n")
minutes = input("Set the amount of minutes\n")
seconds = input("Set the amount of seconds\n")

#hours=15         
#minutes=5 
#seconds=0  

import time

from turtle import*
setup()
t1 = Turtle()

while True:
        t1.clear()
        t1.write(str(hours).zfill(2) + ":" + str(minutes).zfill(2) + ":" 
+ str(seconds).zfill(2),
                 font=("arial", 60, "bold"))

        seconds = seconds+1
        time.sleep(1)

    if seconds == 60:
        seconds = 0
        minutes = minutes+1

    if minutes == 60:
        minutes =0
        hours = hours+1

    if hours ==24:
        seconds=0
        minutes=0
        hours=0

Обычно я хотел бы, чтобы программа turtle открывала отображение времени в соответствии с тем, как пользователь вводит его, что и происходит, однако происходит сбой и не работает, как можно было бы ожидать, что основные 24 часачасы до.

Ответы [ 2 ]

0 голосов
/ 28 января 2019

При чтении ввода Python интерпретирует все, что напечатано как строку.Так hours = input("Set the ...") устанавливает часы в виде строки.Это вызывает проблемы при попытке добавить целые числа (+1) к строкам.

Кроме того, будьте осторожны с созданием часов таким способом;любая задержка в самой программе приведет к тому, что часы будут все больше и больше выходить из времени.

Чуть больше:

  • minutes += 1 более питон, чем минуты = минуты + 1
  • Старайтесь избегать импорта *.Он импортирует гораздо больше, чем необходимо, и может вызывать противоречивые конфликты.
  • Также должно быть set the number of hours;не amount of hours.
0 голосов
/ 28 января 2019

Пользовательский ввод с клавиатуры имеет тип string.Поскольку вы выполняете над ними арифметические операции, вы должны преобразовать их в целочисленный тип следующим образом.Остальная часть кода выглядит нормально.

hours = int(input("Set the amount of hours\n"))
minutes = int(input("Set the amount of minutes\n"))
seconds = int(input("Set the amount of seconds\n"))
...