from datetime import datetime
time_enter = datetime.now()
print ("Has a car entered the section?")
if raw_input() == "yes":
print (datetime.now().strftime("%H:%M:%S.%f"))
datetime.now().strftime("%H:%M:%S.%f")
time_leave= datetime.now()
print ("Has a car leaved the section?")
if raw_input() == "yes":
print (datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
time_taken_to_travel = time_leave - time_enter
print (time_taken_to_travel)
else:
print ("No car has leaved!")
else:
print ("No car has entered!")
print ("No car has leaved!")
您好,我已按照下面的说法编辑了我的代码,但它说第5行和原始输入存在某种错误。你能帮忙解决一下吗?
Has a car entered the section?
Traceback (most recent call last):
File "E:\code.py", line 5, in <module>
if raw_input() == "yes":
NameError: name 'raw_input' is not defined
答案 0 :(得分:0)
不要太苛刻,我必须说你的代码看起来像一个大意大利面。新的行,将逻辑分离为函数等等,可以很容易地更好地概述代码。
初看起来,这部分代码至少是错误的。定义else
语句时,需要有一个缩进块来执行。
else:
print("No car has leaved!")
time_taken_to_travel = time_leave - time_enter
print (time_taken_to_travel)
应该是类似的东西,或者你想要做的事情:)
else:
print("No car has leaved!")
time_taken_to_travel = time_leave - time_enter
print (time_taken_to_travel)
编辑:
好的,在顶部,修复代码以在Python 2.7中运行,如果你在Python&gt;中运行,请注意print
的不同用法。 3。
首先,在编写Python时,缩进非常重要。区分4个空格和缩进。你的代码缩进了太多的空间。您无需致电datetime.datetime.now
,只需致电datetime.now
。其次,为什么在减去em时将日期转换为字符串?将它们保留为日期和输入,intput
不是最佳解决方案。它将验证输入的字符串。请改用raw_input
。
from datetime import datetime
time_enter = datetime.now()
print "Has a car entered the section?"
if raw_input() == "yes":
print datetime.now().strftime("%H:%M:%S.%f")
datetime.now().strftime("%H:%M:%S.%f")
time_leave= datetime.now()
print "Has a car leaved the section?"
if raw_input() == "yes":
print datetime.now().strftime("%Y-%m-%d %H:%M:%S")
else:
print "No car has leaved!"
time_taken_to_travel = time_leave - time_enter
print time_taken_to_travel
else:
print "No car has entered!"
print "No car has leaved!"
输出:
Has a car entered the section?
yes
11:41:54.281000
Has a car leaved the section?
yes
2015-10-15 11:41:55