2016-03-30 15 views
0

Ich schreibe aus diesem Programm mit der Hoffnung, diese Ausgabe erhalten:Python „none“ Drucke

True 
True 
False 
False 

und ich bekomme es mit „none“ gedruckt zwischen meiner erwarteten Ausgabe:

True 
None 
True 
None 
False 
None 
False 
None 

Ich habe keine Ahnung, warum diese "keine" Zeichenfolgen drucken, würde jede Hilfe sehr geschätzt werden! Hier ist mein Code:

# 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) 

Vielen Dank !!

Antwort

1

Dies ist wegen der print(answer1) wie Anrufe - Ihre Funktion gibt nichts zurück, weshalb Sie None gedruckt sehen. Nur nicht drucken, was Ihre Funktion gibt:

check_answer(1, 2, 3, "+") 
check_answer(1, 2, -1, "-") 
check_answer(9, 5, 3, "+") 
check_answer(8, 2, 4, "-") 

Oder Rückkehr True/False aus der Funktion und drucken Sie das Ergebnis:

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) 

Als Randbemerkung, können Sie Ihre Funktion vereinfachen Verwenden des operator Moduls und Zuordnen der Operations-Strings zu tatsächlichen Operationen. Arbeitsprobe für + und -:

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 
Verwandte Themen