2010-04-12 6 views
9

J'essaie d'écrire un programme très simple, je veux imprimer la somme de tous les multiples de 3 et 5 ci-dessous 100, mais , une erreur continue accuring, en disant: « littérale int invalide() avec la base 10: » mon programme est le suivant:l'erreur "littéral invalide pour int() avec la base 10:" continue à venir

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 

Toute aide serait très apprécié.

+0

Pourquoi essayez-vous d'ajouter une chaîne ("") à un numéro? –

+0

cela n'a absolument aucun sens: 'int ('')'. 'sum (i pour i dans l'intervalle (1, 101) if (i% 3 == 0) ou (i% 5 == 0))' –

Répondre

10

Les "" sont la cause de ces problèmes.

changement

sum = "" 

à

sum = 0 

et se débarrasser de

else: 
sum += "" 
7

Python est pas JavaScript: "" ne convertit pas automatiquement 0 et 0 ne convertit pas automatiquement "0". Votre programme semble également être confondu entre l'impression de la somme de tous les multiples de trois et cinq et l'impression d'une liste de tous les nombres qui sont des multiples de trois et cinq.

3

Ok, je suis nouveau sur Python alors je faisais pas mal de choses stupides; De toute façon, je pense que je l'ai compris maintenant.

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

print sum