Ciclo o bucle for in en python
Ciclo o bucle for in en python |
Hoy vamos a ver de que trata el ciclo for in en python. En la sección Tutorial Python iré dejando todas las entradas que resulten necesarias para iniciarse con este maravilloso lenguaje de programación.
La sentencia for .. in es una sentencia de bucle (también llamada ciclo) que se repite en una secuencia de objetos, es decir, a través de cada elemento de una secuencia (listas o cadenas), en el orden con el que aparecen en la secuencia.
Vamos a ver algunos ejemplos para que nos quede bien claro.
Listas
»»»#Midiendo cadenas de una lista:
»»»palabras = ["hola", "python", "pythondiario"]
»»»for i in palabras:
. . . print i, len(i)
. . .
hola 4
python 6
pythondiario 12
Otro ejemplo:
#! /usr/bin/env python
# -*- coding: utf-8 -*-
for i in range (1, 5):
print i
else:
print "El ciclo se termino"
En este programa estamos imprimiendo una secuencia de números. El rango (1, 5) nos da una secuencia [1, 2, 3, 4], el bucle itera sobre esta secuencia y a continuación ejecuta el bloque de instrucciones para cada valor de i (en este caso print i).
Recordar que la parte else es opcional, en este caso se pone para ver el final del ciclo.
Cadenas
#! /usr/bin/env python
# -*- coding: utf-8 -*-
for letra in "pythondiario":
print "Letra actual: ", letra
En este programa iteramos sobre cada letra de "pythondiario" e imprimimos la letra luego de la cadena "Letra acual: ".
Ejemplo de ciclo for anidado: #Un for dentro de otro
#! /usr/bin/env python
# -*- coding: utf-8 -*-
for num in range (10,20): #para iterar entre 10 y 20
for i in range (2,num): #para iterar sobre los factores de num
if num%i == 0: #determina el primer factor
j=num/i #calcula el factor del segundo
print '%d es igual a: %d * %d' % (num,i,j)
break #termina el ciclo del segundo for y vuelve al primero para seguir iterando
else: # parte else del bucle
print num, 'es un numero primo'
Voy a explicar el primer numero a iterar:
En el primer for, num va a tener como primer valor el numero 10.
num = 10 #Iterando en el rango (10, 20)
Luego el programa salta al segundo for, donde el primer valor de i va a ser 2.
i = 2 #en este caso donde num = 10, i va a valer(2, 3, 4, 5, 6, 7, 8, 9).
Luego viene el condicional if que nos dice: si el resto de dividir num entre i (10 % 2) == 0 (en este caso lo es) va a guardar en j el resultado de dividir 10 / 2.
Si el resto de num % i (10 % 2) es distinto de 0, el condicional if es falso por lo tanto vuelve al segundo for para convertir a i en 3, y así hasta llegar a num. Si ningún numero del segundo for hace cumplir la condición, termina el segundo for y salta al else para decirnos que es un numero primo. Ahora el programa salta al primer for para convertir num en 11 y asi hasta el 19.
Puede resultar un poco engorroso las primeras veces que utilizamos los for anidados, pero una ves que agarremos la onda no vamos a para de usarlos 🙂
No olviden dejar sus comentarios ante cualquier duda o sugerencia sobre bucle for python...
-
-
Hola, puedes hacerlo de esta manera:
R = 10
for i in range(0, R, 1):
----print iSaludos
-
>>> R=10
>>> for i in range(0,R,1):
... print (i)
File "", line 2
print (i)
^
Me sale ese error con o sin paréntesis, uso python 3.
¡Saludos! -
Lo he probado con python 3 y me ha funcionado. Si estas trabajando con el shell interactivo acuérdate de dejar la sangría de 4 espacios en la linea: print (i).
Saludos -
Prueba con
>>> R=10
>>> for i in range(0,R,1):
... print ("",i)
-
-
hola como va como se puede recorrer un vector x de atrás hacia adelante!!! he imprimir sus datos.. en python gracias!!!!
-
Hola Lisandro, hay un metodo llamado reverse() que te puede ayudar, te dejo un ejemplo:
>>>x = [1, 2, 3, 4]
>>>x.reverse()
>>>x
[4, 3, 2, 1]Espero te sirva, saludos.
-
-
hola como hago para cargar un numero ejemplo 6 en un vector y que me guarde así.
0,1,2,3,4,5... o así 1,2,3,4,5,6.. gracias... un valor por posición del vector.. gracias.. -
Este comentario ha sido eliminado por un administrador del blog.
-
HOLA, si tengo un vector A=[4,2,5,6,1]
como voy sumando las posiciones para almacenarlas en otro vector, es decir sumar 4+2+5=11, 2+5+6=13, 5+6+1=12
B=[11,13,12]GRACIAS
-
Una agencia de modelos solicita nuevos candidatos para incorporar a la empresa. No especifica ningún requisito. Los datos que se cargan son: nombre, sexo, altura, color de ojos y color de cabello. El alta de datos finaliza cuando en vez del nombre se ingresa la palabra fin. Una vez terminada la carga se almacenan por un lado las personas cuya altura esté entre 1.70 y 1.80 y se cuentan las mujeres rubias de ojos verdes. Finalmente se muestran los nombres y el promedio de altura del primer grupo y la cantidad de personas del segundo grupo.
personas: juan-m-1.78-marrón-castaño/pedro-m-1.68-marrón-castaño/julia-f-1.71-verde-rubio/ana-f-1.65-verde-rubio/josé-m-1.90-verde-rubio/camila-f-1.73-verde-rubio/laura-f-1.63-verde-rubio/sara-f-1.69-celeste-rubia
Si bien es obligatorio programar la carga, a los fines de la prueba de escritorio pueden copiar y pegar los datos suministrados, siempre considerando que es un ejemplo y no los únicos datos posibles. Además, se aclara que el formato de entrada y almacenamiento de los datos tampoco debe ser el que se muestra aquí, pueden usar las estructuras que les sean más cómodas.
La salida que se muestre por pantalla, será como la siguiente (esto en el caso de usar los datos suministrados):
La altura promedio del primer grupo es: 1.74 y sus nombres son juan julia camila
La cantidad de personas del segundo grupo es: 4necesito ayuda
-
hola estoy trabajando con arduino y el monitor serie, quiero mostrar los datos del monitor en un archivo.txt, logre hacerlo pero no se como hacer para que se ejecute constantemente y siempre muestre el valor en una sola linea hasta ahora tengo esto
import serialaddr = 'COM5'
baud = 9600
fname = 'accel.txt'
fmode = 'wb'
reps = 11with serial.Serial(addr,baud) as port, open(fname,fmode) as outf:
for i in range(reps):
x = port.read(size=2)
print x
outf.write(x)
outf.flush()Se entiende lo que necesito hacer, saludos y espero que alguien me pueda guiar
-
hola ya entendi el proceso pero si quiero que salga 1 despues desaparezca el 1 y aparezca el 2 y asi...tengo los comandos pero no se como lo puedo meter
ejemplo:
soy windows
import os
for i in range(1,3)
pero quiero usar el os.system("cls")
que saliera asi mas o menos pero con estos comandos
1
os.system("cls")
2
os.system("cls")
3-
Puedes probar con algo de esto:
import os
import timefor i in range(3):
print i
time.sleep(2)
os.system("cls")Me comentas, Saludos...
-
-
Hola, ¿cómo puedo hacer una función que sustituya los bucles anidados?
-
Solicite los nombres de diez personas y guárdelos en una
lista.
Una vez que tenga la lista con los 10 nombres:
• Los nombres deben aparecer solo una vez (Eliminar
repetidos)
• Muestre un mensaje de saludo a las personas que
quedaron en la lista, en el orden contrario que fueron
ingresados (Del ultimo al primero)
ayuda por favor -
Solicite los nombres de diez personas y guárdelos en una
lista.
Una vez que tenga la lista con los 10 nombres:
• Los nombres deben aparecer solo una vez (Eliminar
repetidos)
• Muestre un mensaje de saludo a las personas que
quedaron en la lista, en el orden contrario que fueron
ingresados (Del ultimo al primero)
ayuda por favor-
Hola Tifany, gracias por visitar el blog. Has escrito algo de código así podemos verlo y ayudarte? Saludos
-
-
Cree un programa en Python 3.4 que le solicite al usuario un número entero, como resultado muestre en la pantalla los números enteros desde 0 (inclusive) hasta el número ingresado y el número al cuadrado. El programa debe mostrar como resultado exclusivamente los valores solicitados , no debe contener letras ni enunciados que lo acompañen
me pueden ayudar con este ejercicio???? graciass
-
Hola, has podido hacer algo tu solo del ejercicios? puedes publicar lo que has echo y te podría ayudar. Saludos!!!
-
Gracias.
se trata de un ejercicio utilizando ciclo for. aquí un ejemplo de como debe resultar el ejercicio:
si el usuario ingresa 3 el programa debe mostrar:0
0
1
1
2
3
9
By: JULIO CESAR -
lo que e podido hacer es:
Numero = int(input())
print (0,Numero)
print (Numero**2)pero me sale mal, me dice que tengo algo mal y que me hace falta.
By: JULIO CESAR
-
-
Hola, hay una función que realice la conversión de ascii a decimal por ejemplo.. ya hice la conversación de la palabra hola a ascii h en ascii es 72 ese debe ser convertido a decimal. Alguien sabe como se hace?
-
Hola buenas noches alguien me puede decir cómo se puede traducir esté pedazo de código en Python:
Int n
For (int i=0; i<n; i++){
Sistema.out.println("introduce la cantidad de empleado a registrar")
}
Se los agradecería mucho gracias -
Como salir de un for infinito sin break!!!!!
-
Un ciclo cuya condición es True parece ser un ciclo infinito (o sea que nunca va a terminar). ¡Pero eso es gravísimo! ¡Nuestros programas tienen que terminar!
Puedes probar con:
import time
try:
while True:
print "Mi Diario Python"
time.sleep(5)
except KeyboardInterrupt:
print 'Se interrumpio!'Luego presionar CTR + C
Saludos, Diego
-
-
nx=5
ny=3
cadena=[[0]*nx]*ny
for i in range(ny):
for j in range (nx):
cadena[i][j]=i+ny*j
print(cadena[i][j], i,j)
print (cadena)
aux=[[0]*ny]*nx
for i in range(nx):
for j in range(ny):
aux[i][j]=cadena[j][i]
print(aux)=======
si cambio de c++ a python no funcina igual 🙁 -
Este comentario ha sido eliminado por el autor.
-
Y si quiero hacer una serie (1,2,4,8,16,32...) ?
-
Buen dia, agradeceria su ayuda en este codigo:
import numpy as np
from matplotlib import pyplot as plt
import math
#from sympy.abc import t, n## LECTURA DE LOS VALORES DEL RADIO NORMALIZADO
radioN0=[]
N0=open('radioNorm0.txt','r')
captura=[]#serie=0
r0=open('radio2.txt','w')for z in N0:
i=float(z)
radioN0.append(z)
r0.write(str(z)+'n')ser=open('serie123.txt','w')
armonicos = 10
for i in range(0, armonicos + 1):
for d in N0:
#k=float(serie)
#q=float(d)
serie = d*((math.cos((2*i*math.pi)/armonicos))-j*(math.sin((2*i*math.pi)/armonicos)))
captura.append(serie)
ser.write(str(serie)+'n')ser.close()
print(captura)En radioN0 se me muestran los valores correspondientes, pero el la variable SERIES, no me imprime nada. Alguna sugerencia?
-
¿Alguien sabe si con un ciclo return se puede volver al inicio de un programa?
¿Como se haría?
-
Buenas alguien podria ayudarme....
Escriba una programa que le pida una palabra de 5 letras al usuario y la muestre de manera vertical y en mayúsculas. Si la palabra contiene alguna vocal, debe reemplazarla por un *. Nota: Utilizar un solo print.ejemplo: perro
P
*
R
R
*tengo esto pero no me da lo que requiero:
palabras= input("Introduce una palabra de 5 letras: ")for i in range(0,len(palabras)):
if palabras[i] in ['a','e','i','o','u']:
palabras = palabras.replace(palabras[i], '*')
print(palabras[i].upper()) -
hola tengo un problema. necesito iterar sobre una patente (3 letras y 3 numeros) para controlar de a las 3 primeras sean letras, siendo que la patente se ingresa por teclado y las letras estan definidads en la tupla (l = 'ABCDEFGHIJKMNLOPQRSTUVWXYZ'. Utilizo un for i in range(len(patente)) y de bajo de eso agrego la condicion, if i in l ( que era la tupla de letras) . Cuando lo pongo a correr me tira el siguiente error: 'str' object cannot be interpreted as an integer.
creo q es porque no puedo iterar sobre numeros y letras, pero no se de q forma puedo hacer q me tome validas las letras y los numeros
Deja una respuesta
hola como puedo transcribir este codigo de c++ a python
for (int i = 0; i < R; ++i)