def name_to_number(name):
if name=='rock'
number=0
elif name=='Spock'
number=1
elif name=='paper'
number=2
elif name=='lizard'
number=3
elif name=='scissors'
number=4
else
print'Not a valid input'
return number
您缺少每个if
末尾的冒号和语句elif
。
这是无效的:
if name == 'rock'
number = 0
Python 使用冒号来指示下一行应该是缩进块。如果你错过了这个冒号,那么python认为下一行不应该缩进。
这是有效的:
if name == 'rock':
number = 0
作为一般调试原则,如果您收到错误消息并且看不到错误提到的行号有任何错误,请检查前一行。上一行中的错误可能不会被 python 解释器发现,直到它到达下一行并且无法解释它。
试试这个:
def name_to_number(name):
if name=='rock':
number=0
elif name=='Spock':
number=1
elif name=='paper':
number=2
elif name=='lizard':
number=3
elif name=='scissors':
number=4
else:
print 'Not a valid input'
return number
对于 Python,缩进起着重要作用。在这里阅读: https://en.wikipedia.org/wiki/Python_syntax_and_semantics#Indentation