Python 2.7 “名称错误”;“输入名称”;没有定义
我浏览了大量其他未定义的帖子,却找不到我的错误,我确信这是件愚蠢的事情,我会觉得自己像个白痴。我是在我的第一个编程课在大学里,所以我为我的无知道歉。我相信这是我的代码中唯一导致错误的部分,如果需要更多,我会添加广告。提前谢谢你Python 2.7 “名称错误”;“输入名称”;没有定义,python-2.7,nameerror,Python 2.7,Nameerror,我浏览了大量其他未定义的帖子,却找不到我的错误,我确信这是件愚蠢的事情,我会觉得自己像个白痴。我是在我的第一个编程课在大学里,所以我为我的无知道歉。我相信这是我的代码中唯一导致错误的部分,如果需要更多,我会添加广告。提前谢谢你 def main(): endProgram = 'no' playerOne = 'no' playerTwo = 'no' playerOne, playerTwo = inputNames(playerOne, playerTwo) de
def main():
endProgram = 'no'
playerOne = 'no'
playerTwo = 'no'
playerOne, playerTwo = inputNames(playerOne, playerTwo)
def inputNames(playerOne, playerTwo):
playerOne = raw_input('Enter number your name: ')
print 'Welcome', playerOne, 'you are player one!'
playerTwo = raw_input('Enter number your name: ')
print 'Welcome', playerOTwo, 'you are player two!'
return playerOne, playerTwo
正如jonrsharpe所评论的,您需要在调用函数之前定义它:
def inputNames():
playerOne = raw_input('Enter number your name: ')
print 'Welcome', playerOne, 'you are player one!'
playerTwo = raw_input('Enter number your name: ')
print 'Welcome', playerTwo, 'you are player two!'
return playerOne, playerTwo
def main():
endProgram = 'no'
playerOne = 'no'
playerTwo = 'no'
playerOne, playerTwo = inputNames()
请注意,您定义的输入参数在本例中是错误的,因为:
print 'Welcome', playerOTwo, 'you are player two!'
替代解决方案 最初,您正在使用基于参数的函数进行练习。此替代解决方案将为参数的使用提供一些信息:
# Playernum is supposed to be an integer
def inputName(playernum):
# This will trigger AssertionError if parameter is not integer
assert type(playernum) == int
name = raw_input('Enter your name: \n') # New line character='\n'
print 'Welcome', name, 'you are player' + str(playernum)
# return statement ends function if executed
return name
def main():
endProgram = 'no'
playerOne = 'no'
playerTwo = 'no'
playerOne, playerTwo = inputName(1), inputName(2)
在您尝试调用它之前,它不会被定义!作为旁注,请记住坚持并使用
下划线\u大小写
。另外,如果您正在学习python,请先学习python 3,因为python 2在将来将不受支持。