所以这是我的代码:
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
答案 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