[英]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.