Python 在高和低之间寻找一个数字

Python 在高和低之间寻找一个数字,python,python-3.x,Python,Python 3.x,我试图制作一个程序,让用户知道一个数字是否在一个下限和一个上限之间,也让他们知道它是否不是一个int。我一直在试图让它正常运行,但出于某种原因,第一次输入任何值时,它返回的不是整数;第二次输入值时,它给出的是正确的值,如果是较高或较低的值,我检查了缩进,看看这是否会导致它。我还是不知道为什么。关于如何改进此代码或使其正常运行有何想法?谢谢大家! 以下是主要程序: import damn HIGH = 10 LOW = 5 prompt = "Please enter a value Betw

我试图制作一个程序,让用户知道一个数字是否在一个下限和一个上限之间,也让他们知道它是否不是一个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_整数(提示、低、高):
s=输入(提示)
尽管如此:
如果s.isdigit():
x=int(s)
如果x<低:
打印(“数字太低”)
elif x>高:
打印(“数字太高”)
其他:
打印(“数字是整数”)
返回x
其他:
打印(“不是数字”)
x=获取位置整数(提示,5,10)
打印(“您输入的”,x)
input()返回int或float。 将input()替换为raw_input(),它将向您返回一个字符串。

input()返回int或float。 将input()替换为raw_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():
        ...
你写的

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():
        ...

在函数中,语法是

def get_pos_integer(prompt, LOW, HIGH):
当你把它叫做

number = get_pos_integer(prompt, HIGH, LOW)

您已经切换了
。您可能应该检查函数中的输入
high>low

语法是否正确

def get_pos_integer(prompt, LOW, HIGH):
当你把它叫做

number = get_pos_integer(prompt, HIGH, LOW)

您已经切换了
。您可能应该检查您的输入是否
高>低

什么输入导致错误,以及该输入上的错误是什么?“…让他们知道它是否为int”。那么,显然不是我把它修好了,是我把函数参数弄混了。我还将s=input(…切换到while循环中。谢谢。这很好。如果我的答案是对任何帮助的,请将其标记为接受:)什么输入导致错误,该输入上的错误是什么?“…让他们知道它是否为int”。那么,显然不是我把它修好了,是我把函数参数弄混了。我还将s=input(…切换到while循环中。谢谢。这很好。如果我的答案是有帮助的,请将其标记为accepted:)