我正在尝试创建一个程序,让用户知道数字是否在低限和高限之间的界限,它也让他们知道它是不是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)
答案 0 :(得分:1)
在你的函数中语法是
def get_pos_integer(prompt, LOW, HIGH):
,而你用
打电话number = get_pos_integer(prompt, HIGH, LOW)
您已加入high
和low
。您应该检查输入high > low
。
答案 1 :(得分:0)
input()返回int或float。 用raw_input()替换input(),它会给你返回一个字符串。
答案 2 :(得分:0)
你写了
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():
...