我正在编写这个程序,希望能得到以下输出:
True
True
False
False
我得到的是在我的预期输出之间打印"无":
True
None
True
None
False
None
False
None
我不知道为什么要打印这些"无"字符串,如果有任何帮助,我们将不胜感激!这是我的代码:
# function: check_answer
# input: two numbers (number1 & number2, both integers); an answer (an integer)
# and an operator (+ or -, expressed as a String)
# processing: determines if the supplied expression is correct. for example, if the operator
# is "+", number1 = 1, number2 = 2 and answer = 3 then the expression is correct
# (1 + 2 = 3).
# output: returns True if the expression is correct, False if it is not correct
def check_answer (number1, number2, answer, operator):
if operator == "+":
test = number1 + number2
if test == answer:
print ("True")
else:
print ("False")
if operator == "-":
test2 = number1 - number2
if test2 == answer:
print ("True")
else:
print ("False")
return
answer1 = check_answer(1, 2, 3, "+")
print (answer1)
answer2 = check_answer(1, 2, -1, "-")
print (answer2)
answer3 = check_answer(9, 5, 3, "+")
print (answer3)
answer4 = check_answer(8, 2, 4, "-")
print (answer4)
非常感谢!!
这是因为类似print(answer1)
的调用-您的函数什么都不返回,这就是您看到打印None
的原因。只是不要打印你的函数返回的内容:
check_answer(1, 2, 3, "+")
check_answer(1, 2, -1, "-")
check_answer(9, 5, 3, "+")
check_answer(8, 2, 4, "-")
或者,从函数返回True/False
并打印结果:
def check_answer(number1, number2, answer, operator):
if operator == "+":
test = number1 + number2
return test == answer
if operator == "-":
test2 = number1 - number2
return test2 == answer
answer1 = check_answer(1, 2, 3, "+")
print (answer1)
answer2 = check_answer(1, 2, -1, "-")
print (answer2)
answer3 = check_answer(9, 5, 3, "+")
print (answer3)
answer4 = check_answer(8, 2, 4, "-")
print (answer4)
附带说明一下,您可以通过使用operator
模块并将操作字符串映射到实际操作来简化您的函数。+
和-
的工作样品:
from operator import add, sub
def check_answer(number1, number2, answer, operator):
operations = {
"+": add,
"-": sub
}
if operator not in operations:
raise ValueError("Operator '%s' not supported" % operator)
return operations[operator](number1, number2) == answer