1. Aprendiendo a Programar en
… con mi computadora y todo lo que
encuentre disponible.
Ejercicios
parte 4.
2. for i in range(cant_digitos):
candidato = random.choice(digitos)
# eligiendo dígitos no repetidos
while candidato in codigo:
candidato = random.choice(digitos)
codigo = codigo + candidato
¿Qué hora es? ¡Hora de jugar!
3. # interacción con el usuario
print "Bienvenido a mente maestra"
print “Debe adivinar un número de",
cant_digitos,
"cifras distintas"
propuesta =
raw_input("Que código propones?: ")
# procesando propuestas e indicando aciertos
# y coincidencias
intentos = 1
¿Qué hora es? ¡Hora de jugar!
4. while propuesta != codigo and propuesta !=
"Me doy":
intentos = intentos + 1
aciertos = 0
coincidencias = 0
# recorre propuesta y verifica en el código
for i in range(cant_digitos):
if propuesta[i] == codigo[i]:
aciertos = aciertos + 1
elif propuesta[i] in codigo:
coincidencias = coincidencias + 1
¿Qué hora es? ¡Hora de jugar!
5. print "Tu propuesta (", propuesta, ") tiene",
aciertos,
"aciertos y ", coincidencias, "coincidencias."
# pedimos siguiente propuesta
propuesta =
raw_input("Propone otro codigo: ")
if propuesta == "Me doy":
print "El código era", codigo
print "Suerte la próxima vez!"
else:
print "Felicidades! Adivinaste el código en",
intentos, "intentos."
¿Qué hora es? ¡Hora de jugar!
6. Listas.
Se usan listas para poder modelar datos
compuestos pero cuya cantidad y valor
varían a lo largo del tiempo.
Son secuencias mutables y vienen
dotadas de una variedad de operaciones
muy útiles.
La notación para lista es una secuencia de
valores encerrados entre corchetes y
separados por comas.
7. A las listas también se les puede aplicar la
función len() para conocer su longitud.
Para acceder a los distintos elementos de la
lista se utilizará la misma notación de
índices de cadenas y tuplas, con valores
que van de 0 a la longitud de la lista -1.
>>> xs=[78455, 89211, 66540, 45750]
>>> xs[0]
78455
>>> len(xs)
4
Listas.
8. >>> xs[4]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range
>>> xs[3]
45750
Listas.
9. Para una sublista a partir de la original, se
utiliza la notación de rangos.
Para una lista que contiene sólo el segundo
registro escriba: >>> xs[1:2]
[89211]
Para el segundo y tercer registro escriba:
>>> xs[1:3]
[89211, 66540]
Para la lista que contiene al primero y
segundo registro escriba: >>> xs[:2]
[78455, 89211]
Listas.
10. Para cambiar un componente de una lista, se
selecciona el componente mediante su índice
y se le asigna el nuevo valor:
>>> xs[1]=79211
>>> xs
[78455, 79211, 66540, 45750]
Para agregar un nuevo valor al final de la
lista se utiliza la operación append().
>>> xs.append(47890)
#agregar el valor 47890 al final de xs.
>>> xs
[78455, 79211, 66540, 45750, 47890]
>>>
Listas.
11. Insertar un nuevo valor en la posición del
índice k (y desplazar un lugar el resto de la
lista) necesita la operación insert().
>>> xs.insert(2, 54988)
#para insertar 54988 en la tercera
#posición
>>> xs
[78455, 79211, 54988, 66540, 45750,
47890]
Listas.
12. Las listas no controlan si se insertan
elementos repetidos, para exigir unicidad,
debe hacerlo mediante código.
>>> xs.insert(1,78455)
>>> xs
[78455, 78455, 79211, 54988, 66540,
45750, 47890]
Listas.
13. Eliminar un valor de una lista necesita la
operación remove().
>>> xs.remove(45750)
#para borrar el 45750 de la lista
>>> xs
[78455, 78455, 79211, 54988, 66540,
47890]
Si el valor a borrar está repetido, se borra
sólo su primera aparición:
>>> xs.remove(78455)
>>> xs
[78455, 79211, 54988, 66540, 47890]
Listas.
14. Preguntar si un valor determinado es un
elemento de una lista necesita la operación
in:
>>> xs
[78455, 79211, 54988, 66540, 47890]
>>> 78 in xs
False
>>> 66540 in xs
True
>>>
Ésto puede usarse para todas las
secuencias, incluyendo tuplas y cadenas.
Listas.
15. Averiguar la posición de un valor dentro de
una lista usa la operación index().
>>> xs.index(78455)
0
>>> xs.index(47890)
4
Si no se encuentra, se produce un error:
>>> xs.index(78)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: list.index(x): x not in list
Listas.
16. Si el valor está repetido, el índice devuelto
es el de la primera aparición:
>>> ys=[10,20,10]
>>> ys.index(10)
0
Listas.
17. Para iterar sobre todos los elementos de
una lista use un ciclo for:
>>> zs = [5, 3, 8, 10, 2]
>>> for x in zs:
print x
5
3
8
10
2
Ésto se puede utilizar sobre cualquier
secuencia, incluyendo tuplas y cadenas.
Listas.
18. Las listas, tuplas y cadenas son parte del
conjunto de las secuencias y cuentan con
las operaciones siguientes:
Listas.
19. Operaciones de las secuencias:
x in s Indica si la variable x se encuentra en s
s + t Concantena s con t.
s * n Concatena n copias de s.
s[i] Elemento i de s, empezando por 0.
s[i:j] Porción de la secuencia s desde i hasta j
(no inclusive).
s[i:j:k] Porción de la secuencia s desde i hasta j
(no inclusive), con paso k.
len(s) Cantidad de elementos de la secuencia
s.
min(s) Mínimo elemento de la secuencia s.
max(s) Máximo elemento de la secuencia s.
Listas.
20. Armar la lista de los inscritos en una
materia:
1. El usuario ingresa datos de estudiantes
que se van guardando en una lista.
2. El programa solicitará al usuario que
ingrese uno a uno los listados de los
inscritos. Con esos registros construirá
una lista, que al final se mostrará.
Listas.
21. #!/usr/bin/env python
# encoding: latin1
""" Módulo para inscribir alumnos al curso """
# Inicia la interacción con el usuario
print "Inscripción en el curso IA"
# Se lee el primer listado
listado=input("Ingresa un listado (<=0 para
terminar): ")
# Procesando los listado
# Inicialmente no hay inscritos
Listas.
22. ins = []
while listado > 0:
# Agrega el listado leído a la lista de
inscritos
ins.append(listado)
# Lee otro listado más
listado=input("Ingresá un listado (<=0 para
terminar): ")
# Muestra el resultado
print "Esta es la lista de inscritos: ", ins
Listas.
23. #!/usr/bin/env python
# encoding: latin1
""" Módulo para inscribir al curso IA """
# Inicia la interacción con el usuario
print "Inscripción en el curso IA"
# Lee el primer listado
listado=input
("Ingresa un listado (<=0 para terminar): ")
# Procesa los listados
# Inicialmente no hay inscritos
Listas.
24. ins = []
while listado > 0:
# Si no está, agrega a la lista de inscritos,
if listado not in ins:
ins.append(listado)
# de lo contrario avisa que ya existe
else:
print "Ya existe en la lista"
# Lee otro listado más
listado=input("Ingresá un listado (<=0 para
terminar): ")
# Muestra el resultado
print "Esta es la lista de inscritos: ", ins
Listas.
25. Ejercicios:
1. Permitir que los alumnos se puedan
inscribir o borrar.
2. Inscribir y borrar alumnos como antes,
pero registrar también el nombre y
apellido de la persona inscrita.
Listas.