2010-04-12 16 views
9

Estoy tratando de escribir un programa muy simple, quiero imprimir la suma de todos los múltiplos de 3 y 5 por debajo de 100, pero , un error continúa accuring, diciendo "no válido literal para int() con la base 10:" mi programa es el siguiente:el error "literal inválido para int() con base 10:" sigue apareciendo

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 

Cualquier ayuda sería muy apreciada.

+0

Por qué estás tratando de añadir una cadena ("") a un número? –

+0

esto no tiene ningún sentido: 'int ('')'. 'sum (i para i en rango (1, 101) if (i% 3 == 0) o (i% 5 == 0))' –

Respuesta

10

El "" son la causa de estos problemas.

Cambio

sum = "" 

a

sum = 0 

y deshacerse de

else: 
sum += "" 
7

Python no es de JavaScript: "" no convierte automáticamente a 0 y 0 no convierte automáticamente a "0".

Su programa también parece confundirse entre imprimir la suma de todos los múltiplos de tres y cinco e imprimir una lista de todos los números que son múltiplos de tres y cinco.

3

Ok, soy nuevo en Python, así que estaba haciendo bastantes cosas tontas; de todos modos, creo que lo he resuelto ahora.

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

print sum 
Cuestiones relacionadas