2010-04-12 12 views
9

Ich versuche, ein sehr einfaches Programm zu schreiben, ich möchte die Summe aller Vielfachen von 3 und 5 unter 100 drucken, aber „invalid wörtliche für int() mit Basis 10“, hält ein Fehler accuring, dass mein Programm ist wie folgt:der Fehler "ungültiges Literal für int() mit Basis 10:" kommt weiter

sum = "" 
sum_int = int(sum) 
for i in range(1, 101): 
    if i % 5 == 0: 
     sum += i 
    elif i % 3 == 0: 
     sum += i 
    else: 
     sum += "" 

print sum 

Jede Hilfe wäre sehr willkommen.

+0

Warum versuchen Sie eine Zeichenfolge ("") zu einer Reihe anhängen? –

+0

das hat absolut keinen Sinn: 'int ('')'. 'sum (i für i im Bereich (1, 101) if (i% 3 == 0) oder (i% 5 == 0))' –

Antwort

10

Die "" sind die Ursachen für diese Probleme.

ändern

sum = "" 

zu

sum = 0 

und loszuwerden

else: 
sum += "" 
7

Python ist nicht JavaScript: "" nicht automatisch 0 konvertieren und 0 nicht automatisch "0" konvertieren.

Ihr Programm scheint auch verwirrt zu sein zwischen dem Ausdruck der Summe aller Vielfachen von drei und fünf und Drucken einer Liste aller Zahlen, die Vielfache von drei und fünf sind.

3

Ok, ich bin neu in Python, also machte ich ziemlich viele dumme Sachen; Wie auch immer, ich denke, ich habe es jetzt ausgearbeitet.

sum = 0 
for i in range(1, 1001): 
    if i % 5 == 0: 
     sum += i 
    elif i % 3 == 0: 
     sum += i 

print sum 
Verwandte Themen