2015-10-15 34 views
-7
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行和原始输入有某种错误。你能帮助纠正它吗?这个python代码有什么问题?如果和其他语句

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

是否至少告诉你的语法错误是什么?也许从底部的6-7行缩进? – Sayse

+0

你的'print('行不是用')'关闭的。 – agold

+0

您应该关闭所有打印功能'ie)print(datetime.datetime.now()。strftime(“%Y-%m-%d%H:%M:%S”))' – The6thSense

回答

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) 

编辑:

OK,关顶,固定的代码在Python 2.7运行,如果在Python> 3中运行,请注意不同的使用print

首先,在编写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 
+0

这只是其中一个问题。 – Sayse

+0

这有助于很多....它排序至少 –

+0

编辑的答案,与工作代码... –