首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python获取用户输入错误

Python获取用户输入错误
EN

Stack Overflow用户
提问于 2013-09-18 07:21:02
回答 3查看 578关注 0票数 0

我有一个简单的程序,提示用户在1-9之间输入数字,如果先前输入了数字,它将要求用户输入另一个号码。用户有10次尝试或尝试。

这只是我想要做的事情的一部分,但是我在将参数从getNum方法传递到调用它的方法时遇到了问题。如果我输入1-9之间的号码,就没有问题了。当我输入先前输入的数字并且提示请求另一个号码时,问题就开始了。

代码语言:javascript
复制
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 

有人能告诉我我在这里做错了什么吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-09-18 07:26:45

你需要用

代码语言:javascript
复制
return getNum(numList)

而不是

代码语言:javascript
复制
getNum(numList)

getNum函数中。原因是您递归地调用了getNum函数,因此您必须通过所做的所有递归返回接受的值。此外,必须将参数传递给每个调用。

票数 1
EN

Stack Overflow用户

发布于 2013-09-18 07:27:29

在“如果条件”中调用getNum()的方式是错误的,应该是:-

代码语言:javascript
复制
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)
票数 0
EN

Stack Overflow用户

发布于 2013-09-18 07:43:20

一个完整的解决方案,没有危险的input,错误处理和没有问题的递归限制。

代码语言:javascript
复制
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)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18866110

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档