[英]Finding a number between high and low
我正在尝试制作一个程序,让用户知道数字是否在低限和高限之间,并且还让他们知道其是否不是int。 我一直在尝试使其正常运行,但是由于某些原因,我第一次输入任何值时,它第二次返回的值就不是整数,而第二次输入的值给出了它的较高值或较低值的正确值,我检查了缩进以查看是否可能导致它。 我仍然不确定为什么。 关于如何改进此代码或使其正常运行的任何想法? 谢谢!
以下是主程序:
import damn
HIGH = 10
LOW = 5
prompt = "Please enter a value Between 5 and 10"
numbers = damn.get_pos_integer(prompt, HIGH, LOW)
print (numbers)
以下是我的功能:
def get_pos_integer(prompt, low, high):
s = input(prompt)
while True:
if s.isdigit():
x = int(s)
if x < low:
print("Number is too low")
elif x > high:
print("Number is too high")
else:
print("Number is an integer")
return x
else:
print("Not a number")
x = get_pos_integer(prompt, 5, 10)
print("You entered", x)
在您的函数中,语法是
def get_pos_integer(prompt, LOW, HIGH):
当你用
number = get_pos_integer(prompt, HIGH, LOW)
你已经switced high
和low
。 您可能应该检查输入是否high > low
。
input()返回int或float。 用raw_input()替换input(),它会向您返回一个字符串。
你写了
s = input(prompt)
while True:
# check that number
这意味着您要求输入一个号码并反复检查。 如果数字无效,则此循环将永远继续。
你可能想要
while True:
s = input(prompt) # ask for new numbers until you get a valid one
if s.isdigit():
...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.