Python "none"打印



我正在编写这个程序,希望能得到以下输出:

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

最新更新