繁体   English   中英

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

[英]Creating function in python - while loop won't end

所以这是我的代码:

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

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

编辑该地址以解决用户输入非整数的问题。 除了尝试将输入转换为整数外,还包括尝试。 如果由于用户未输入整数而无法执行此操作,请通过将exception关键字放在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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM