我需要帮助创建一个函数,以确保用户的输入有效。如果它无效,那么我们需要要求他们重新输入不同的信息。
第一个函数需要参数,prompt,low,high,其中prompt要求用户输入,low是下边界,high是上边界。
以下是我目前所拥有的:
def get_int(prompt,low,high):
inputs= int(input(prompt))
while inputs<= low and inputs >=high:
inputs= int(input(prompt))
return inputs
您的条件顺序很奇怪。
这将确保输入在低边界和高边界之间。如果是,则返回输入,否则将再次询问。我添加了一条可选的消息来通知用户预期的范围。
def get_int(prompt, low, high):
while True:
inputs = int(input(prompt))
if low <= inputs <= high:
return inputs
# else:
# print(f"Please provide a number between {low} and {high}.")
如果inputs <= low
为true,则inputs >= high
不可能同时为true。因此,通过inputs <= low and inputs >= high
同时检查两者是否为真是没有意义的,而且总是错误的。如果您使用or
而不是and
:,您的代码将正常工作
def get_int(prompt,low,high):
inputs = int(input(prompt))
while inputs <= low or inputs >= high:
inputs = int(input(prompt))
return inputs
也许使用递归?像这样:
def user_input():
value = input("Please enter input: ")
if not low <= value <= high:
user_input()
return value
Recusion只能工作到一定的深度,但这可能是数千个输入。