所以,我一直在试图工作在一个语句,我应该从用户的时间值,如果它是在一定的时间值之间,我应该问候用户早上好!,中午后好,晚上好,晚安。用户将以HH:MM:SS的格式输入时间,我的函数代码看起来像这样。
r = datetime.time(12, 00, 00)
t = datetime.time(18, 00, 00)
u = datetime.time(6, 00, 00)
p = datetime.time(23, 59, 00)
def my_function:
time=input('what is the time?')
if datetime.datetime.strptime(time, '%H:%M:%S')>=u and datetime.datetime.strptime(time, '%H:%M:%S')<r:
print('Morning')
elif datetime.datetime.strptime(time, '%H:%M:%S')>=r and datetime.datetime.strptime(time, '%H:%M:%S')<t:
print('Afternoon')
elif datetime.datetime.strptime(time, '%H:%M:%S')>=t and datetime.datetime.strptime(time, '%H:%M:%S')<p:
print('Evening')
elif datetime.datetime.strptime(time, '%H:%M:%S')>=p and datetime.datetime.strptime(time, '%H:%M:%S')<u:
print('Night')
else:
return 'invalid'
当我尝试调用该函数时,我返回了错误的时间数据 “what is the time?” does not match format ‘%H:%M:%S’. 谁能给点建议,如何修改我的代码,或者说我做错了什么? 非常感谢
edit:在’datetime.datetime’和’datetime.time’实例之间出现了’>=’不支持的错误。
解决方案:
def my_function():
r = datetime.time(12, 00, 00)
t = datetime.time(18, 00, 00)
u = datetime.time(6, 00, 00)
p = datetime.time(23, 59, 00)
time = input('what is the time?')
time = datetime.datetime.strptime(time, '%H:%M:%S').time()
if u <= time < r:
return('Morning')
elif r <= time < t:
return('Afternoon')
elif t <= time < p:
return('Evening')
elif p <= time or time < u:
return('Night')
else:
return 'invalid'
print(my_function())