检查 unix 时间是否在 python3 中的其他两个 unix 时间戳之间
Checking that a unix time is between two other unix timestamps in python3
我正在尝试创建一个小的 python3 脚本来检查输入的 unix 时间是否在当前 unix 时间和未来两周之间。
#Ask for the UNIX execution time.
execution_time = input("When do you want to execute your command?: ")
if len(execution_time) <=0:
print("Error: You have set a UNIX-time")
if (time.time()) < execution_time < (time.time())+1.2e6:
print("The execution time is valid")
if execution_time < (time.time()):
print("The execution time is in the past")
if execution_time > (time.time())+1.2e6:
print("Error:The execution time is more than 2 weeks into the future")
但是我得到的错误是:
Traceback (most recent call last):
File "flightplanner.py", line 38, in <module>
if (time.time()) < execution_time < (time.time())+1.2e6:
TypeError: '<' not supported between instances of 'float' and 'str'
我刚开始学习如何编程,所以有很多 if 语句,这可能不是一个好主意,但它是一小段代码。
谢谢你能给我的任何帮助。
最佳
哈塞
错误代码表示您尝试使用“<”将字符串(一段文本)与浮点数(数字)进行比较。对于口译员来说,就像你在说 “Hello World”是否小于 7?
当然,在您的情况下,您所说的 是“1000000000” 小于 118483939 的可能性更大?
所以你要做的就是接受输入,并告诉 python 它应该将它解释为一个数字。您使用
执行此操作
float(execution_time)
如果您需要一些建议,我建议您也使用 elif(else if 的缩写)和 else。
一个例子:
if(num == 1):
print(“Your number was 1”)
elif(num == 2):
print(“Your number was 2”)
else:
print(“Your number was not 1 or 2”)
这样做的好处是速度更快,如果第一次测试成功,则不会检查第二次和第三次,这将使代码更具可读性。
else 的另一个优点是,如果其他测试不成功,它总是 运行,即使在您甚至没有想到或懒得输入的情况下.
我要更改的另一件事是将时间放入变量一次,然后将其用于比较。这(我认为)速度非常快,并且会使其更具可读性。
注意: 每次我谈论“更快”时,它不会对您的程序产生任何明显的影响。你的程序应该 运行 接近瞬时,但你可以想象在较长的程序中,你经常使用它,或者在每个性能提升都很重要的程序中,这会有所不同,所以最好从开始.
我正在尝试创建一个小的 python3 脚本来检查输入的 unix 时间是否在当前 unix 时间和未来两周之间。
#Ask for the UNIX execution time.
execution_time = input("When do you want to execute your command?: ")
if len(execution_time) <=0:
print("Error: You have set a UNIX-time")
if (time.time()) < execution_time < (time.time())+1.2e6:
print("The execution time is valid")
if execution_time < (time.time()):
print("The execution time is in the past")
if execution_time > (time.time())+1.2e6:
print("Error:The execution time is more than 2 weeks into the future")
但是我得到的错误是:
Traceback (most recent call last):
File "flightplanner.py", line 38, in <module>
if (time.time()) < execution_time < (time.time())+1.2e6:
TypeError: '<' not supported between instances of 'float' and 'str'
我刚开始学习如何编程,所以有很多 if 语句,这可能不是一个好主意,但它是一小段代码。
谢谢你能给我的任何帮助。
最佳 哈塞
错误代码表示您尝试使用“<”将字符串(一段文本)与浮点数(数字)进行比较。对于口译员来说,就像你在说 “Hello World”是否小于 7? 当然,在您的情况下,您所说的 是“1000000000” 小于 118483939 的可能性更大? 所以你要做的就是接受输入,并告诉 python 它应该将它解释为一个数字。您使用
执行此操作float(execution_time)
如果您需要一些建议,我建议您也使用 elif(else if 的缩写)和 else。 一个例子:
if(num == 1):
print(“Your number was 1”)
elif(num == 2):
print(“Your number was 2”)
else:
print(“Your number was not 1 or 2”)
这样做的好处是速度更快,如果第一次测试成功,则不会检查第二次和第三次,这将使代码更具可读性。 else 的另一个优点是,如果其他测试不成功,它总是 运行,即使在您甚至没有想到或懒得输入的情况下.
我要更改的另一件事是将时间放入变量一次,然后将其用于比较。这(我认为)速度非常快,并且会使其更具可读性。
注意: 每次我谈论“更快”时,它不会对您的程序产生任何明显的影响。你的程序应该 运行 接近瞬时,但你可以想象在较长的程序中,你经常使用它,或者在每个性能提升都很重要的程序中,这会有所不同,所以最好从开始.