寻找高低之间的数字

时间:2012-10-16 14:20:40

标签: python python-3.x

我正在尝试创建一个程序,让用户知道数字是否在低限和高限之间的界限,它也让他们知道它是不是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)

3 个答案:

答案 0 :(得分:1)

在你的函数中语法是

def get_pos_integer(prompt, LOW, HIGH):

,而你用

打电话
number = get_pos_integer(prompt, HIGH, LOW)

您已加入highlow。您应该检查输入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():
        ...