2016-06-16 19 views
-1

Ich bin etwa 4 Stunden in einige Selbstunterricht von Python 3.5 mit Notepad ++ und habe eine Straßensperre getroffen. Das Hauptproblem ist, dass, wo ich feststecke, so einfach ist, kann ich keinen einzigen Weg finden, es auf Google zu beheben! Ich versuche, einen Rechner zum Laufen zu bringen, und zeige den Code, den ich dazu benutzt habe. Aber zuerst ...Warum kann ich mein "+" nicht dazu bringen, tatsächlich zu addieren?

def add(x, y): 
return x * y 
myValue=add(3,3) 
print (myValue) 

Dies liefert korrekte Ergebnisse. Dieser Fall ist 6. Wenn ich versuche, dies in meinem größeren Taschenrechner-String zu verwenden, wäre das Ergebnis stattdessen 33. Es fügt sie nicht hinzu, es druckt einfach die Zahlen nebeneinander.

komplette Code:

#definitions 
def add(x, y): 
    return (x + y) 
def subtract(x, y): 
    return x - y 
def multiply(x, y): 
    return x * y 
def divide(x, y): 
    return x/y 


#A calculator that does +,-,*,/ 
def main(): 
    operation = input('What may I calculate? (+,-,*,/)') 
    if (operation != '+' and operation != '-' and operation != '*' and operation != '/'): 
     #invalid operation text 
     print('Please try again. Select + for addition, - for subtraction, * for multiplication,/for division') 

    else: 
     x=input('Enter Number 1:') 
     y=input('Enter Number 2:') 
     if(operation=='+'): 
     print (add(x, y)) 


main() 
+0

http://stackoverflow.com/questions/20449427/how-can-i-read-inputs-as- integers-in-python –

+0

Äh, deine 'add'-Funktion vervielfacht .... auch warum ist alles fett? – GManNickG

+0

Sie geben die Add-Funktion später korrekt in den eigentlichen Definitionen an, daher glaube ich nicht, dass es dort tatsächlich ein Problem gibt. – nbryans

Antwort

2

Das Problem ist, dass Sie Strings mit der Funktion und nicht ints/Schwimmer sind vorbei. Das Ergebnis ist, dass es die Zeichenfolgen verkettet. Sie müssen die Eingabe von Zeichenfolge float konvertieren (es sei denn, Sie mit nur int bequem sind)

else: 
    x = float(input('Enter Number 1:')) 
    y = float(input('Enter Number 2:')) 
+1

könnte 'float' stattdessen tun wollen, deckt mehr Fälle –

+0

I schätze wirklich die Hilfe :) –

+0

@MikeB also das Kästchen für nbryans überprüfen, wenn es dein Problem löste! –

Verwandte Themen