Foros del Web » Programando para Internet » Python »

Dudas con bucles en python.

Estas en el tema de Dudas con bucles en python. en el foro de Python en Foros del Web. Estoy bastante acostumbrado a los bucles de C++ así que se me hace un tanto extraño el bucle for in en python, por ejemplo. Mis ...
  #1 (permalink)  
Antiguo 19/11/2011, 22:53
Avatar de nanotime  
Fecha de Ingreso: noviembre-2011
Ubicación: Cd. Guayana
Mensajes: 145
Antigüedad: 13 años
Puntos: 6
Pregunta Dudas con bucles en python.

Estoy bastante acostumbrado a los bucles de C++ así que se me hace un tanto extraño el bucle for in en python, por ejemplo.

Mis problemas son bastante sencillos y más que todo me frena saber utilizar bien los ciclos o bucles.

Uno es un programa que dice si un número es primo o no y el otro hace una multiplicación pero con sumas sucesivas, osea, 2*5 es 2+2+2+2+2.

La cosa es que no sé exactamente si usar un while o un for in. For in creo que es para recorrer cosas como tuplas específicamente o declarando con range, pero no se me viene mucho a la cabeza el como usarlo bien.

No sé, ya hice varios intentos y siempre me fastidia
  #2 (permalink)  
Antiguo 20/11/2011, 00:12
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años, 8 meses
Puntos: 1329
Respuesta: Dudas con bucles en python.

En este caso lo más sencillo es usar un While. También vi tu mensaje en la lista de pyar así que tomé tu código y lo modifique para que veas lo que está pasando. El problema es tu algoritmo, la lógica no está bien, a veces es recomendable cuando uno empieza escribir su algoritmo primero y si es necesario hasta su diagrama de flujo (sí, ya se que aburre hacer todo eso, pero después no será necesario).

Código Python:
Ver original
  1. #-*- coding: utf-8 -*-
  2. a = int(raw_input('Ingrese un número: ')) #5
  3. b = int(raw_input('Ingrese otro número: ')) #2
  4. s = 0
  5. r = 0
  6. while s < b:
  7.     r = r+a
  8.     s = s+1
  9. print r

Claro que hay varias maneras más pythonicas de hacer esto, incluso con un for, pero creo que con esta verás el error.

PD: No te preocupes por hacer Spam, sólo ten paciencia, que parece que te desesperas rápido.

Saludos
__________________
Grupo Telegram Docker en Español
  #3 (permalink)  
Antiguo 20/11/2011, 10:50
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: Dudas con bucles en python.

Esto es un ejemplo de como pasar de un for ciclo en C++ a un for en python.

Código C++:
Ver original
  1. for(i = start; i < limit; i += step)

Código Python:
Ver original
  1. for i in range(start, limit, step):

Por defecto range tiene las siguientes sobrecargas de funciones:
range(limit)
range(start, limit)
range(start, limite, step)

Si el step es negativo entonces la condición cambia.
Código C++:
Ver original
  1. for(i = start; i > limit; i += step)
  #4 (permalink)  
Antiguo 20/11/2011, 10:54
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: Dudas con bucles en python.

Ahora con respecto al código de de la multiplicación.

Código Python:
Ver original
  1. a = int(raw_input())
  2. b = int(raw_input())
  3.  
  4. resultado = 0
  5.  
  6. for i in range(a):
  7.     resultado += b
  8.  
  9. print a

Aunque creo que la versión mas directa es la mejor.

Código Python:
Ver original
  1. print a * b
  #5 (permalink)  
Antiguo 20/11/2011, 12:41
Avatar de nanotime  
Fecha de Ingreso: noviembre-2011
Ubicación: Cd. Guayana
Mensajes: 145
Antigüedad: 13 años
Puntos: 6
Respuesta: Dudas con bucles en python.

Sep, pero el ejercicio era para aprender a usar los bucles jaja. Fuera de eso, ya voy comprendiendo mejor todo esto, y es un poco menos engorroso que en C++, solo una duda, que significa el "+=" exactamente?
  #6 (permalink)  
Antiguo 20/11/2011, 13:13
 
Fecha de Ingreso: septiembre-2010
Mensajes: 525
Antigüedad: 14 años, 1 mes
Puntos: 59
Respuesta: Dudas con bucles en python.

Cita:
Iniciado por nanotime Ver Mensaje
que significa el "+=" exactamente?
Añade algo a la variable.

Por ejemplo:
Código Python:
Ver original
  1. a = 1
  2. a += 1
  3. # es lo mismo que  a = a + 1
  4.  
  5. >> print a
  6. 2

__________________
01011111 01000001 01100100 01110010 01101001 01100001 01101110 01011111

Etiquetas: bucles, dudas, programa, usar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:41.