繁体   English   中英

在高和低之间找到一个数字

[英]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 highlow 您可能应该检查输入是否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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM