Python获取用户输入错误
我有一个简单的程序,提示用户输入1-9之间的数字,如果之前输入了数字,它会要求用户输入另一个数字。用户有10次尝试 这只是我想做的一部分,但是我在将参数从getNum方法传递到调用它的方法时遇到了问题。如果我输入1-9之间的数字,它没有问题。当我输入之前输入的号码时,问题开始出现,提示要求输入另一个号码Python获取用户输入错误,python,user-input,Python,User Input,我有一个简单的程序,提示用户输入1-9之间的数字,如果之前输入了数字,它会要求用户输入另一个数字。用户有10次尝试 这只是我想做的一部分,但是我在将参数从getNum方法传递到调用它的方法时遇到了问题。如果我输入1-9之间的数字,它没有问题。当我输入之前输入的号码时,问题开始出现,提示要求输入另一个号码 def getNum(numList): num = input("Pick your number: ") if num <= 0 or num >9:
def getNum(numList):
num = input("Pick your number: ")
if num <= 0 or num >9:
print 'Invalid number. Please try again.'
getNum()
if num in numList:
print 'Number taken. Please try again.'
getNum()
else:
return num
inputList = []
endGame = True
choice = 0
attempts = 0
while endGame == False or attempts < 10:
userNum = getNum(inputList)
print 'Number entered:', userNum
inputList.append(userNum)
print inputList
attempts += 1
def getNum(numList):
num=输入(“选择您的号码:”)
如果num 9:
打印“无效号码”。请再试一次
getNum()
如果numList中有num:
打印所取的号码。请再试一次
getNum()
其他:
返回数
inputList=[]
终局
选择=0
尝试次数=0
当endGame==False或尝试次数<10时:
userNum=getNum(输入列表)
打印“输入的编号:”,userNum
inputList.append(userNum)
打印输入列表
尝试次数+=1
有人能告诉我我做错了什么吗 您需要使用
return getNum(numList)
而不是
getNum(numList)
在
getNum
函数中。原因是递归调用getNum
函数,因此必须通过所有递归返回接受的值。此外,必须将参数传递给每个调用。在“if conditions”中调用getNum()的方式是错误的
应该是:-
if num <= 0 or num >9:
print 'Invalid number. Please try again.'
getNum(numList)
if num in numList:
print 'Number taken. Please try again.'
getNum(numList)
如果num 9:
打印“无效号码”。请再试一次
getNum(numList)
如果numList中有num:
打印所取的号码。请再试一次
getNum(numList)
一个完整的解决方案,没有输入、错误处理和递归限制的危险
def get_num(num_list):
while True:
try:
num = int(raw_input('Pick your number: '))
except ValueError:
print('Not a number')
else:
if 0 < num <= 9:
if not num in num_list:
return num
else:
print('Number taken.')
else:
print('Invalid number.')
number_list = []
for _ in range(5):
number = get_num(number_list)
print('Number entered: {}'.format(number))
number_list.append(number)
def get_num(num_列表):
尽管如此:
尝试:
num=int(原始输入('选择您的号码:'))
除值错误外:
打印('不是数字')
其他:
如果0输入是另一个缺陷。