Python if语句上的语法错误

Python if语句上的语法错误,python,Python,我不知道错误在哪里,每次我运行这个,我都会在“if”行末尾的冒号上得到语法错误 我已经用python写了所有关于if-else-elif语句的帖子,但仍然不知道为什么 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: pa

我不知道错误在哪里,每次我运行这个,我都会在“if”行末尾的冒号上得到语法错误 我已经用python写了所有关于if-else-elif语句的帖子,但仍然不知道为什么

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认为您的

fumo=eval(input('Fumi?(si/no)
行的末尾缺少一个括号

另外,不要缩进is/else块

fumo = eval(input('Fumi? (si/no)')
编辑:

我还修改了您的打印行。您需要用逗号分隔要打印的每个部分,或者像这样连接它们:

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')

您在eta变量上有一个错误…它不能继续打勾:eta=input('Per INGISIARE dimmi QUANI anni hai:')@DanielSanchez:看起来OP使用的是Python 3,在这种情况下允许使用Unicode标识符。@DSM,好的,我实际上不知道,谢谢您提供的信息!!!:)我会删除eval(),而不是修复它。它有一个副作用(评估任何类型为Python源代码的内容),这对于发布的代码来说是完全不需要的。虽然这是事实,但值得指出的是,如果用户实际输入
no
,而不是
“no”
,那么这一行将在运行时引发名称错误。是的,如果使用Python2.x,这应该是
raw\u input
而不是
eval(input())
。由于OP是初学者,我们可能应该指出最后一行也不起作用。
print('Ti restano da vivere ' + str(Data) + ' anni')