2016-12-08 2 views
0
# Declare variables for the number, and the 
# total. 

def main(): 
# Initialize for while loop 
    number = 1.0 
    total = 0.0 

# Continue adding numbers while they are positive. 
while number > 0: 
    number = float(input('Enter a positive number' \ ' (negative to quit): ')) 

    # Check that number is positive so as 
    # not to change value of the total. 
    if number > 0: 
     total != total + number 
    if number > 0: 
     total == total + number 

# Display total. 
print ('Total =', format.(total, '.2f')) 

main() 

jedes Mal wenn ich es so laufen ‚unerwartete Zeichen nach Zeilenfortsetzungszeichen‘und die Gesamt

, was mache ich falsch ??

+1

Warum hast du das '/' nicht in Anführungszeichen gesetzt? –

+1

Fixe deine Zuweisungen auch auf 'total'. "total! = total + number" und "total == total + number" sind nur boolesche Operationen, die "true" oder "false" zurückgeben, aber den in "total" gespeicherten Wert nicht ändern. Es ist effektiv ein No-Op. Wenn Sie eigentlich einen Vergleich machen wollten, sollten Sie wissen, dass es wahrscheinlich nicht funktioniert. Google "Python Gleitkomma-Gleichheit" für weitere Informationen. Sie haben auch zweimal den gleichen bedingten Ausdruck. War einer ein Tippfehler? – skrrgwasme

+1

Ihre Hauptfunktion wird erst aufgerufen, nachdem die while-Schleife ausgeführt wurde, und die initialisierten Variablen sind sowieso lokal, nicht die globalen Variablen, die von der while-Schleife verwendet werden. – chepner

Antwort

2

Ändern Sie diese Zeile:

number = float(input('Enter a positive number' \ ' (negative to quit): ')) 

Vielleicht dazu:

number = float(input('Enter a positive number (negative to quit): ')) 

Alles, was Teil main() ist sollte konsequent eingerückt werden (zum Beispiel mit 4 Leerzeichen).

Ändern Sie auch diese Zeile:

total == total + number 

Um dies:

total = total + number 
+0

Ich würde sagen, er wollte etwas wie folgt: ''Geben Sie eine positive Zahl \ (negativ zu beenden):'' Mit dem umgekehrten Schrägstrich in Anführungszeichen auch. Das ist wirklich der einzige Grund, warum ich ihn mit einem Backslash sehen konnte, wo er es tat. –

+0

Oder: 'number = float (Eingabe ('Eine positive Zahl eingeben \ n (Negativ zum Beenden))'))' – davejagoda

+0

Traceback (letzter Aufruf zuletzt): Datei "F:/Computerprogramm/letzte Zuweisung/Zuordnung2. py ", Zeile 26, in print ('Gesamt =', Format (insgesamt, '.2f')) NameError: Name 'Gesamt' ist nicht definiert >>> – KK94

1

Wenn Sie Folgendes eingeben:

number = float(input('Enter a positive number' \ ' (negative to quit): ')) 

Der Backslash automatisch als Zeilenfortsetzungszeichen gelesen wird, die Python erwartet, dass n für Newline folgt.