Я новичок на французском языке в Python, и я хотел бы закодировать программу, которая предупреждает нас, когда время (строка «День, часы, минуты, секунды») неверно (например, 83 секунды). Я сделал эту программу:String in Python
t=input("Put day,hours,minutes,seconds: ")
t="j,h,m,s"
if int(t[6])<=0 or int(t[6])>=59:
print("Seconds wrong")
if int(t[4])<=0 or int(t[4])>=59:
print("Minutes wrong")
if int(t[2])<=0 or int(t[2])>=24:
print("Hours wrong")
if int(t[0])<=0 or int(t[0])>=31:
print("days wrong")
else:
print("OK")
Но я имею эту ошибку:
if t[6]<=0 or t[6]>=59:
TypeError: unorderable types: str() <= int()
Так что я положил «ИНТ» везде (как "int(t[X])<=0"
) , но потом я эту ошибку:
if int(t[6])<=0 or int(t[6])>=59:
ValueError: invalid literal for int() with base 10: 's'
Вы сначала запрашиваете 't' из пользовательского ввода, а затем переписываете' t' в новую строку без целых чисел. Что вы ожидаете вместо этого? Какой пользовательский ввод будет предоставлен? –
удалите вторую строку, она переписывает 't' как' 'j, h, m, s" ' – aIKid
Последнее, что я проверил,' 0' и '59' действительны секунды и минуты. Вероятно, вы хотите что-то большее, как 't [6] < 0 or t[6] > = 60'. То же самое с другими единицами времени. – greatwolf