猿问

尝试在Python 3中将时间转换为整数

我一般对Python和编程都不熟悉,并且已经在这个特定问题上工作了大约四个小时。我正在尝试将时间(例如12:30)转换为“ if”语句中可用的内容。到目前为止,这是我尝试过的方法:


time = input("Enter the time the call starts in 24-hour notation:\n").split(":")

if time >= 8:30 and time <= 18:00:

    print("YES")

尝试执行该操作时,出现无效的语法错误。当我尝试将时间转换为整数时[callTime = int(time)],出现错误,指出


int()参数必须是字符串


这只是我正在研究的整个问题的一部分,但是我想我可以弄清楚其余的问题,如果我能从这个问题上得到一个切入点。尽管我不相信我可以在这个特定问题上使用datetime;一切都会有帮助的。


编辑:更正的诠释(时间)


慕森卡
浏览 320回答 3
3回答

慕标5832272

8:30不是有效的数据类型。将其转换为整数以使其正常工作(8:30 = 8小时30分钟= 8 * 60 + 30分钟)>>> time = input("Enter the time the call starts in 24-hour notation:\n").split(":")Enter the time the call starts in 24-hour notation:12:30>>> time['12', '30'] # list of str>>> time = [int(i) for i in time] # will raise an exception if str cannot be converted to int>>> time[12, 30] # list of int>>> 60*time[0] + time[1] # time in minutes750>>>&nbsp;要在几秒钟之内获得它,例如和12:30:58,请time_in_sec = time[0] * 3600 + time[1] * 60 + time[2]在最后一行进行相同的操作。由于具有模数属性,可以保证只有一个“真实”时间对应于转换为整数的小时。对于您的问题,创建一个to_integer(time_as_list)返回int的函数,然后将用户输入与to_integer('18:00'.split(':'))和进行比较。to_integer('8:30'.split(':'))

手掌心

手动处理时间并非易事。我建议您使用datetime支持时间转换,比较等的模块。from datetime import datetime as dtt = input("...")t_object = dt.strptime(t, "%H:%M")if t_object >= dt.strptime("8:30", "%H:%M") and \&nbsp; &nbsp;t_object <= dt.strptime("18:00", "%H:%M"):&nbsp; &nbsp; do_your_stuff()

喵喔喔

我对这个问题的看法(没有datetime):answer = input("Enter the time the call starts in 24-hour notation:\n")t = tuple(int(i) for i in answer.split(':'))if (8, 30) <= t <= (18, 0):&nbsp; &nbsp; print("YES")
随时随地看视频慕课网APP

相关分类

Python
我要回答