Ver Mensaje Individual
  #22 (permalink)  
Antiguo 17/02/2012, 18:23
BiChOmAlO_TGN
 
Fecha de Ingreso: julio-2003
Mensajes: 243
Antigüedad: 20 años, 9 meses
Puntos: 11
Respuesta: Ejercicios python con solucion

Cita:
Iniciado por AlvaroG Ver Mensaje
Cualquier while es fácilmente traducible a for, y a la inversa (bueno, en python como el único for es el que itera, quizás no sea tan cierto, pero mantengámonos con esta idea).

Para cualquier bucle, necesitás tres cosas básicas: inicialización, condición de salida y por supuesto el código que vayas a ejecutar

En tu código:
* for itera sobre los números entre 0 y num+1, y tiene implícito el avance para cada número.
* la inicialización es total = 0.
* El bloque de código no necesita cambiar.

Entonces, podés convertirlo fácilmente:
Código Python:
Ver original
  1. total = 0
  2. i = 0 # única inicialización extra requerida
  3. while i <= num: # esto está implícito en el for
  4.     total += i # el bloque de código no cambia
  5. return total

Comentarios aparte:
* el código que pegaste no funciona, porque el "return" está dentro del for.
* podés sustituir el for con algo mucho más simple: return sum(range(num+1))
* no es recomendable, por claridad, repetir el nombre de las variables como lo has hecho con "num"

Ufff que lio, al final ya lo saque, muchas gracias por la ayuda, en tu código había un error seguro que se te paso, de la manera que estaba el bucle era infinito porque 'i' siempre es menos o igual al 'num', había que añadirle un acumulador para 'i' ,de todas formas me ayudo mucho tu respuesta porque me orientó,

Al final quedó así:

Código Python:
Ver original
  1. def addNumbers(num):
  2.     total=0
  3.     i=1
  4.     while i<=num:
  5.         total=total+i
  6.         i=i+1
  7.     return total


Gracias!!!