这是我的数字检查器代码。
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但仍然没有效果!
有人可以帮忙吗?请! 非常感谢。
答案 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.