2016-06-13 19 views
-1

Ich versuche ein Programm zu schreiben, das den Benutzer auffordert, zwei Zahlen einzugeben und dann das System die Summe, den Unterschied, das Produkt und den Quotienten der gegebenen Zahlen herauszufinden und die Ergebnisse auszudrucken. Das habe ich bisher. Wenn ich den Code für die Summe ausgeführt habe, kam es korrekt zurück, als ich die Differenzfunktion hinzugefügt habe, funktioniert es nicht.mehrstufige mathematische Gleichungen python

def total_sum(num1,num2): 
result = num1 + num2 
return result 

def total_difference(num_1,num_2): 
    result = num_1 - num_2 
    return result 

def total_product(number1,number2): 
    result = number1 * number2 
    return result 

def total_quotient (number_1,number_2): 
    result = number_1/number_2 
    return result 

def main(): 
    value_1 = float(input('Enter a number :')) 
    value_2 = float(input('Enter second number :')) 
    value_2 != 0 

    add = total_sum(value_1,value_2) 
    difference = total_difference(value_1, value_2) 
    product = total_product(value_1,value_2) 
    quotient = total_quotient(value_1,value_2) 

    print ('The total is {:.1f}'.format(add)) 
    print ('The difference is {:.1f}'.format(difference)) 
    print ('The product is {:.2f}' .format(product)) 
    print ('The quotient is {:.2f}'.format(quotient)) 

main() 
+2

Sie in main() einen Apostroph in dem zweiten Druck Vergessen? – Li357

+0

@AndrewL Ich bin sehr neu in Python, ich bin mir nicht sicher, wo Sie sprechen. es gibt mir einen Syntaxfehler auf dem "def" Teil des def total_sum – CzSzPzTz

+0

'print ('Der Unterschied ist', Format (total_difference, '.1f))' das ist die Zeile, über die Andrew spricht.War es ein Tippfehler beim Posten des Codes? – SilentMonk

Antwort

0

paar Fehler,

  1. Sie verfehlten den ' wie in den Kommentaren von Andrew hingewiesen.
  2. Sie haben einen Fehler in der .format gemacht.
  3. Sie hatten results in Ihrer Differenzfunktion verwendet, wo Sie das Ergebnis zurückgegeben haben.

Hier ist der korrigierte Code:

def total_sum(num1,num2): 
    result = num1 + num2 
    return result 

def total_difference(num_1,num_2): 
    result = num_1 - num_2 
    return result 

def main(): 
    value_1 = float(input('Enter a number :')) 
    value_2 = float(input('Enter second number :')) 

    add = total_sum(value_1,value_2) 
    difference = total_difference(value_1, value_2) 

    print ('The total is {:.5f}'.format(add)) 
    print ('The difference is {:.5f}'.format(difference)) 


main() 
+0

danke! Also würde ich einfach den Quotienten und die Produktschritte in der richtigen Reihenfolge hinzufügen? @Ani Menon – CzSzPzTz

+0

die OP wählen, um die eingebaute 'format' Funktion anstelle von' str.format' zu verwenden, die Spezifikation innerhalb der Zeichenkette selbst spezifizierend, glaube ich nicht, dass das als ein Fehler gilt. –

+0

@CzSzPzTz Ja. (Und vergiss nicht, 'value_2' im Divisionsoperator ungleich Null zu addieren) –

1

Das Problem ist, dass Sie versuchen, die Summe Methode zu verwenden, die durch eine Liste durchlaufen müssen, Sie versuchen, dies mit einem Tupel zu tun.

Sie haben das Äquivalent von:

a = sum(1,2) 
print(a) 

die TypeError: 'float' object is not iterable

statt zurückkehren werden Sie Ihre eingegebenen Werte zu einer Liste hinzuzufügen, wie folgt:

list2sum = [] 
list2sum.append(value_1) # do the same for 2) 
a = sum(list2sum) 
print(a) 

für more on sum:

sum (iterable [, start])

Summe beginnt und die Elemente eines iterable von von links nach rechts und gibt die Summe zurück. Start ist standardmäßig 0. Die iterablen Elemente sind normalerweise Zahlen, und der Startwert ist nicht darf eine Zeichenfolge sein.

Für einige Anwendungsfälle gibt es gute Alternativen zu sum(). Die bevorzugte, schnelle Möglichkeit, eine Sequenz von Strings zu verketten, ist der Aufruf '' .join (sequence). Weitere Informationen zum Hinzufügen von Fließkommawerten mit der erweiterten Genauigkeit finden Sie unter math.fsum(). Um eine Reihe von Iterablen zu verketten, erwäge die Verwendung von itertools.chain().

Wenn Sie versuchen, Ihre Gesamtsumme Funktion zu nutzen, tun dies, indem sie in geeigneter Weise mit:

a = total_sum(value_1, value_2) 
print(a) #print to confirm result 

Denken Sie daran, Summe tatsächlich einen eingebauten-in-Funktion ist, wie oben erwähnt. Ich weiß nicht, warum Sie es versuchen, hier zu verwenden:

total_sum = sum(value_1,value_2) 
+1

Ich glaube, dass die total_sum-Methode anstelle von dort verwendet werden sollte, auf jeden Fall gut für die Dokumentation Referenz –

Verwandte Themen