因此,我尝试使用Python编写程序,该程序将在一定时间后发送文本提示。我正在尝试检查时间是否在实际范围内(即一天不超过或少于24小时),但是尝试进行比较时却出现错误。我无法比较从字符串连接的整数。
dur = input("How long do you want to wait (EX: HHMMSS): ")
hours = int(dur[0:1])
minutes = int(dur[2:3])
seconds = int(dur[4:5])
print(hours)
print(minutes)
print(seconds)
for n in range(0, LOOP):
if(count == 0):
# Check if hours is realistic
if(hours > 0 and hours < 24 and str(hours[0]) == 0):
hours = hours[1]
count += 1
我得到一个TypeError说> str和int的实例之间不支持。由于无法将它们与>或<进行比较,我该怎么做?
答案 0 :(得分:0)
尝试添加此内容:
hours = int(dur[0:2])
minutes = int(dur[2:4])
seconds = int(dur[4:6])
for n in range(0, LOOP):
if(count == 0):
# Check if hours is realistic
if(hours > 0 and hours < 24 and hours < 10):
...
另一件事,您不能使用hours = hours[1]
因为'int' object is not subscriptable
。
答案 1 :(得分:0)
不宜手动解析日期和时间。您的代码尝试使用hours[0]
索引为整数。没有强制转换,字符串和整数类型是不可比的。
尝试使用Python的datetime模块,特别是strptime
函数,该函数从格式化的字符串中解析日期。您可以使用timedelta
提取小时,分钟,秒,轻松进行比较并添加/减去时间。
from datetime import datetime
while 1:
try:
dur = input("How long do you want to wait (EX: HHMMSS): ")
dt = datetime.strptime(dur, "%H%M%S")
print(dt, " hour:", dt.hour, " min:", dt.minute, " sec:", dt.second)
break
except ValueError:
print("Invalid time.")
样品运行:
How long do you want to wait (EX: HHMMSS): 012261
Invalid time.
How long do you want to wait (EX: HHMMSS): 012251
1900-01-01 01:22:51 hour: 1 min: 22 sec: 51