尝试从函数返回时为False

时间:2017-02-13 22:38:22

标签: python python-3.x try-catch

这是我的数字检查器代码。

number = int(input("Give me a whole number. >> "))
standardNum = 50

def numberChecker(number, standardNum):
    result = standardNum - number
    print(result)
    if result >= 0:
        print("Result is positive.")
        return True
    else:
        print("Result is negative.")
        return False

while True:
    try:
        numberChecker(number, standardNum)
        break
    except numberChecker() == True:
        print("Your number is too big.")
        amountProduct = int(input("Give me a whole small number >> "))

当我输入" 80"时,这就是我所看到的 -

Give me a whole number. >> 80
-30
Result is negative.

但是,它不会打印除numberChecker()行之外的代码块。

我想要打印代码"你的号码太大"并请求另一个输入句子"给我一个小数字>>"但它似乎没有用。

我尝试将条件从True更改为False但仍然没有效果!

有人可以帮忙吗?请! 非常感谢。

3 个答案:

答案 0 :(得分:4)

我认为您误解了try-except块的含义。你显然应该使用if-else

while True:
    if numberChecker(number, standardNum):
        break
    else:
        print("Your number is too big.")
        number = int(input("Give me a whole small number >> "))

答案 1 :(得分:1)

有几种方法可以制定这个值检查,但是如果你想使用例外,这种方法只是你现在的一个小小的飞跃:

{{1}}

答案 2 :(得分:0)

目前还不清楚您是否理解例外的目的。话虽如此,这里滥用它们的更好方法可能会完成你试图做的事情:

STANDARD_NUM = 50

class NumberTooBigError(Exception): pass

def numberChecker(number, standardNum):
    result = standardNum - number
    if result < 0:  # number >= standardNum
        raise NumberTooBigError()

while True:
    try:
        number = int(input("Give me a whole number. >> "))
        numberChecker(number, STANDARD_NUM)
        break
    except NumberTooBigError:
        print("Your number is too big.")

print("Your number was accepted.")

样本用法:

Give me a whole number. >> 80
Your number is too big.
Give me a whole number. >> 55
Your number is too big.
Give me a whole number. >> 50
Your number was accepted.
相关问题