2013-07-15 316 views
-1
Data = 80 
età = input('Per iniziare dimmi quanti anni hai:') 
Data = Data - età 
fumo = eval(input('Fumi? (si/no)') 
if fumo == 'si': 
    Data = Data - 10 
else: 
    pass 
print('Ti restano da vivere ' Data 'anni') 

我不能讓錯誤所在,我每次運行此我得到的冒號語法錯誤的「如果」的端線 我已經紅每在python中發佈if if else語句,但仍然無法得到原因。語法錯誤if語句

+0

您對ETA變量的錯誤...它不能與剔下去:ETA =輸入( '每個iniziare dimmi quanti anni hai:') – Netwave

+1

@DanielSanchez:它看起來像OP使用Python 3,在這種情況下Unicode標識符是允許的。 – DSM

+0

@DSM,好的,我其實不知道,謝謝你的信息! :) – Netwave

回答

6
fumo = eval(input('Fumi? (si/no)') 

就在那裏。您在此行末尾缺少括號。開放的括號使Python認爲您的if聲明實際上是此聲明的一部分。

+1

我會放棄eval()而不是修復它。它有一個副作用(評估任何類型爲Python源代碼的東西),對於已發佈的代碼完全不需要。 –

+0

雖然這是真的,但它可能值得指出的是,如果用戶實際輸入'no'而不是''no'',則此行將在運行時引發NameError。 – DSM

+0

是的,如果使用Python 2.x,這應該是'raw_input'而不是'eval(input())'。 – kindall

2

您在fumo = eval(input('Fumi? (si/no)')行末尾缺少括號。

另外,不要縮進你的/ else塊。

​​

編輯:

我還修改了印刷生產線。您需要單獨或者您希望用逗號打印,或將它們連接起來,像這樣各部分:

print('Ti restano da vivere ' + str(Data) + ' anni') 
+0

由於OP是初學者,我們應該指出最後一行也不行。 – DSM

+0

你是對的。我編輯了我的帖子。 – astrognocci