El documento describe cómo crear bucles (ciclos) en Python para procesar múltiples entradas de datos de forma iterativa. Explica cómo usar bucles while para procesar datos de forma indefinida hasta cumplir una condición de parada, y cómo usar la instrucción break para salir del bucle. También muestra funciones para contar la aparición de caracteres en cadenas usando bucles for.
cuadernillo de lectoescritura para niños de básica
Contar letras en cadenas
1. Aprendiendo a Programar en
… con mi computadora y todo lo que
encuentre disponible.
Ejercicios
parte 3.
2. Ciclos.
El usuario debe poder ingresar muchos
números y cada vez que se ingresa uno
debemos informar si es positivo, cero o
negativo. Es posible preguntarle al
usuario, al inicio del programa, cuántos
números ingresará.
3. def muchos_pcn():
i = input(“¿Cuántos números digitará? ")
for j in range(0,i):
x = input("Ingrese un número: ")
if x > 0:
print “El número es positivo. "
elif x == 0:
print “El número es igual a 0. "
else:
print “El número es negativo. "
Ciclos.
4. Sin embargo este programa no es muy
intuitivo, porque obliga a conocer de
antemano cuántos números procesará,
sin equivocarse, en lugar de ingresar uno
a uno los números hasta procesarlos a
todos. Debe introducir una instrucción
que permita construir ciclos que no
requieran que se informe de antemano la
cantidad de veces que se repetirá el ciclo.
5. Un ciclo indefinido es de la forma
while <condición>:
<hacer algo>
While es una palabra reservada, la condición
es una expresión booleana, igual que en las
instrucciones if. Y el cuerpo consiste de una o
más instrucciones. El sentido de esta
instrucción es el siguiente:
Ciclos indefinidos.
6. Un ciclo indefinido es de la forma
while <condición>:
<hacer algo>
1. Evaluar la condición.
2. Si la condición es falsa, salir del ciclo.
3. Si la condición es verdadera, ejecutar el
cuerpo.
4. Volver a 1.
Ciclos indefinidos.
7. El esquema del ciclo interactivo es el siguiente:
hayMasDatos hace referencia a “Si”.
Mientras hayMasDatos haga referencia a
“Si”:
Pedir datos.
Realizar cálculos.
Preguntar al usuario si hay más datos
(“Si” cuando los hay). hayMasDatos hace
referencia al valor ingresado.
Ciclos indefinidos.
8. def pcn_loop():
hayMasDatos = "Si"
while hayMasDatos == "Si":
x = input("Ingrese un número: ")
if x > 0:
print "Número positivo"
elif x == 0:
print "Igual a 0"
else:
print "Número negativo"
hayMasDatos
= raw_input("Quiere seguir? <Si-No>: ")
Ciclos indefinidos.
9. Suponer que si ingresa el carácter * es una
indicación de que desea terminar. El esquema
del ciclo con condición de parada es el
siguiente:
Pedir datos.
Mientras el dato pedido no coincida con la
condición de parada:
Realizar cálculos.
Pedir datos.
Ciclos indefinidos.
10. def pcn_loop2():
x=input("Ingrese un número
(’*’ para terminar): ")
while x <>"*":
if x > 0:
print "Número positivo"
elif x == 0:
print "Igual a 0"
else:
print "Número negativo"
x=input("Ingrese un número
(’*’ para terminar): ")
Ciclos indefinidos.
12. El sentido del break es el siguiente:
1. Se evalúa <condición> y si es falsa se sale
del ciclo.
2. Se ejecuta <hacer algo1 >.
3. Se evalúa <condif> y si es verdadera se
sale del ciclo (con break).
4. Se ejecuta <hacer algo2 >.
5. Se vuelve al paso 1.
Break, el rompe ciclos.
13. def pcn_loop3():
while True:
x = input("Ingrese un número
(’*’ para terminar): ")
if x == ’*’:
break
elif x > 0:
print "Número positivo"
elif x == 0:
print "Igual a 0"
else:
print "Número negativo"
Break, el rompe ciclos.
14. Cuente cuántas letras “A” hay en una cadena
x. Dada una cadena x, una función retornará
un valor contador que representa cuántas
letras “A” tiene la cadena. Es decir:
Iniciar el contador en 0
para cada letra de x
averiguar si la letra es “A”
y en consecuencia tratarla
(incrementar en 1 el contador)
retornar el valor del contador.
Procesamiento de cadenas.
15. def contarA (x):
""" La funcion contarA(x) cuenta cuántas
letras "A" aparecen en la cadena x ."""
contador = 0
for letra in x:
if letra == "A":
contador = contador + 1
return(contador)
Procesamiento de cadenas.
16. Cuando pidan contar cuántas letras “E”
hay en una cadena habrá que hacer otra
función. Tiene sentido hacer una función
más general que permita contar cuántas
veces aparece un carácter dado en una
cadena.
17. Escribir una función contar(l, x) que
cuente cuántas veces aparece un carácter
l dado en una cadena x.
¿Hay más letras “A” o más letras “E” en
una cadena? Escribir un programa que lo
decida.
18. # ARCHIVO: mentemaestra.py
# modulo que permitirpa elegir números
aleatoriamente
import random
# el conjunto de simbolos validos en el código
digitos = (’0’,’1’,’2’,’3’,’4’,’5’,’6’,’7’,’8’,’9’)
# "elegimos" el código
codigo = ‘’
¿Qué hora es? ¡Hora de jugar!
19. for i in range(4):
candidato = random.choice(digitos)
# eligiendo digitos no repetidos
while candidato in codigo:
candidato = random.choice(digitos)
codigo = codigo + candidato
# iniciamos interaccion con el usuario
print "Bienvenido a Mente Maestra"
print "Tienes que adivinar un número de ", 4,
"cifras distintas"
propuesta = raw_input("Que codigo
propones?: ")
¿Qué hora es? ¡Hora de jugar!
20. # procesamos las propuestas e indicamos
aciertos y coincidencias
intentos = 1
while propuesta != codigo:
intentos = intentos + 1
aciertos = 0
coincidencias = 0
# recorremos propuesta, verificamos código
for i in range(4):
if propuesta[i] == codigo[i]:
aciertos = aciertos + 1
elif propuesta[i] in codigo:
coincidencias = coincidencias + 1