在python中创建函数 - while循环不会结束

时间:2018-03-12 20:15:15

标签: python python-3.x

所以这是我的代码:

def userInputInt(LL,UL):

"""Asks for user input for an integer value within a certain limit"""
need_input = True
while need_input == True:
    print("Please enter an integer between ",LL," and ",UL, ": ", sep='')
    user = input()
    if user >= 'LL' and user <= 'UL':
         need_input == False
         return int(user)

我希望能够接受输入中的任何内容并仍然可以使用它。但是我的while循环不管我输入什么都继续,即使它在参数范围内。

有什么建议吗?

感谢您的帮助!

我想将它们作为字符串进行比较,以便用户可以输入字母而不会崩溃。但我忘了把''变成文字。

我的解决方案:

while need_input == True:
    print("Please enter an integer between ",LL," and ",UL, ": ", sep='')
    user = input()
    if user >= str(LL) and user <= str(UL):
         need_input = False

1 个答案:

答案 0 :(得分:0)

@Wondercricket说的第二个。用户实际上不是一个字符串,它是一个等于字符串或整数的变量(无论你的情况如何)。当您在LL和UL周围加上引号时,您将它们视为文字字符串'LL'和'UL',而不是它们等于的值。您需要将它们视为变量LL和UL,以便可以将LL和UL的值与用户变量的值进行比较。

编辑以解决用户输入除整数之外的其他内容的处理问题。包括try除了尝试将输入转换为整数。如果由于用户没有输入整数而无法进行,请将continue关键字放在except子句中再次请求输入。一旦输入可以转换为整数的输入,代码将移动到检查int是否在LL和UL之间的行:

LL = 10
UL = 20
need_input = True
while need_input == True:
    print("Please enter an integer between ",LL," and ",UL, ": ", sep='')
    try:
        user = int(input())
    except:
        continue
    if user >= LL and user <= UL:
        need_input = False