SlideShare ist ein Scribd-Unternehmen logo
1 von 25
Aprendiendo a Programar en
… con mi computadora y todo lo que
encuentre disponible.
Ejercicios
parte 4.
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!
# 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!
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!
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!
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.
 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.
>>> xs[4]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range
>>> xs[3]
45750
Listas.
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.
 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.
 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.
 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.
 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.
 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.
 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.
 Si el valor está repetido, el índice devuelto
es el de la primera aparición:
 >>> ys=[10,20,10]
 >>> ys.index(10)
 0
Listas.
 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.
Las listas, tuplas y cadenas son parte del
conjunto de las secuencias y cuentan con
las operaciones siguientes:
Listas.
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.
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.
#!/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.
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.
#!/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.
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.
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.

Weitere ähnliche Inhalte

Was ist angesagt?

Clase 9- programacion
Clase 9- programacionClase 9- programacion
Clase 9- programacion
diego MC
 
Ejercicios con bucles repetitivos
Ejercicios con bucles repetitivosEjercicios con bucles repetitivos
Ejercicios con bucles repetitivos
Joshe Varillas
 
Programa en java con el Metodo de la burbuja
Programa en java con el Metodo de la burbujaPrograma en java con el Metodo de la burbuja
Programa en java con el Metodo de la burbuja
LupitaOMG Garmendia
 
Aplicación de arreglos bidimensionales
Aplicación de arreglos bidimensionalesAplicación de arreglos bidimensionales
Aplicación de arreglos bidimensionales
marigelcontreras
 
Ejercicios Whule y Do While
Ejercicios Whule y Do WhileEjercicios Whule y Do While
Ejercicios Whule y Do While
Joshe Varillas
 

Was ist angesagt? (20)

Clase 6
Clase 6Clase 6
Clase 6
 
Arreglos en C
Arreglos en CArreglos en C
Arreglos en C
 
Semana 2 Fundamentos de Python(Entradas, Salidas y Operaciones Aritméticas)
Semana 2   Fundamentos de Python(Entradas, Salidas y Operaciones Aritméticas)Semana 2   Fundamentos de Python(Entradas, Salidas y Operaciones Aritméticas)
Semana 2 Fundamentos de Python(Entradas, Salidas y Operaciones Aritméticas)
 
10 programas de if
10 programas de if10 programas de if
10 programas de if
 
Clase 9- programacion
Clase 9- programacionClase 9- programacion
Clase 9- programacion
 
Arreglos, Procedimientos y Funciones
Arreglos, Procedimientos y FuncionesArreglos, Procedimientos y Funciones
Arreglos, Procedimientos y Funciones
 
01 el lenguaje Python
01 el lenguaje Python01 el lenguaje Python
01 el lenguaje Python
 
Ejercicios tema1
Ejercicios tema1Ejercicios tema1
Ejercicios tema1
 
Descubriendo scala
Descubriendo scalaDescubriendo scala
Descubriendo scala
 
Apuntadores y direccionamiento
Apuntadores y direccionamientoApuntadores y direccionamiento
Apuntadores y direccionamiento
 
Arreglos
ArreglosArreglos
Arreglos
 
Ejercicios con bucles repetitivos
Ejercicios con bucles repetitivosEjercicios con bucles repetitivos
Ejercicios con bucles repetitivos
 
Switch case (informe_19)
Switch case (informe_19)Switch case (informe_19)
Switch case (informe_19)
 
Ejercicios de matrices y vectores en c++
Ejercicios de matrices y vectores en c++Ejercicios de matrices y vectores en c++
Ejercicios de matrices y vectores en c++
 
dqwrwer
dqwrwerdqwrwer
dqwrwer
 
Tipo de dato DOUBLE
Tipo de dato DOUBLETipo de dato DOUBLE
Tipo de dato DOUBLE
 
Programa en java con el Metodo de la burbuja
Programa en java con el Metodo de la burbujaPrograma en java con el Metodo de la burbuja
Programa en java con el Metodo de la burbuja
 
0.1 Enbarcadero I
0.1 Enbarcadero I0.1 Enbarcadero I
0.1 Enbarcadero I
 
Aplicación de arreglos bidimensionales
Aplicación de arreglos bidimensionalesAplicación de arreglos bidimensionales
Aplicación de arreglos bidimensionales
 
Ejercicios Whule y Do While
Ejercicios Whule y Do WhileEjercicios Whule y Do While
Ejercicios Whule y Do While
 

Ähnlich wie Ejercicios Python parte 4

Temas programacion java_2
Temas programacion java_2Temas programacion java_2
Temas programacion java_2
Wally IG
 
Programacion en python_1
Programacion en python_1Programacion en python_1
Programacion en python_1
wozgeass
 

Ähnlich wie Ejercicios Python parte 4 (20)

Django y Python para todos
Django y Python para todosDjango y Python para todos
Django y Python para todos
 
Sesion1_Ciencia_de_Datos-Introduccion a Pithon.pdf
Sesion1_Ciencia_de_Datos-Introduccion a Pithon.pdfSesion1_Ciencia_de_Datos-Introduccion a Pithon.pdf
Sesion1_Ciencia_de_Datos-Introduccion a Pithon.pdf
 
Python04
Python04Python04
Python04
 
Python para principiantes
Python para principiantesPython para principiantes
Python para principiantes
 
9. listas y for-in
9.  listas y for-in9.  listas y for-in
9. listas y for-in
 
02 introduccion a python
02 introduccion a python02 introduccion a python
02 introduccion a python
 
Python
Python Python
Python
 
9_U2_S3_Cadenas.pdf
9_U2_S3_Cadenas.pdf9_U2_S3_Cadenas.pdf
9_U2_S3_Cadenas.pdf
 
Temas programacion java_2
Temas programacion java_2Temas programacion java_2
Temas programacion java_2
 
Taller listasyeasygui
Taller listasyeasyguiTaller listasyeasygui
Taller listasyeasygui
 
Programacion en python_1
Programacion en python_1Programacion en python_1
Programacion en python_1
 
arrays
arraysarrays
arrays
 
Bryan gordillo ensayo_arreglos
Bryan gordillo ensayo_arreglosBryan gordillo ensayo_arreglos
Bryan gordillo ensayo_arreglos
 
Fundamentos de programacion
Fundamentos de programacionFundamentos de programacion
Fundamentos de programacion
 
Vba y objetos excel
Vba y objetos excelVba y objetos excel
Vba y objetos excel
 
Metodologia para resolver problemas con Programacion orientada a Objetos
Metodologia para resolver problemas con Programacion orientada a ObjetosMetodologia para resolver problemas con Programacion orientada a Objetos
Metodologia para resolver problemas con Programacion orientada a Objetos
 
Ejercicios resueltos con Python
Ejercicios resueltos con PythonEjercicios resueltos con Python
Ejercicios resueltos con Python
 
Introducción a la programación en Python
Introducción a la programación en PythonIntroducción a la programación en Python
Introducción a la programación en Python
 
P3si
P3siP3si
P3si
 
12637788.ppt
12637788.ppt12637788.ppt
12637788.ppt
 

Mehr von Facultad de Ciencias y Sistemas

Mehr von Facultad de Ciencias y Sistemas (20)

Ejercicios HTML 5
Ejercicios HTML 5Ejercicios HTML 5
Ejercicios HTML 5
 
CSS3
CSS3CSS3
CSS3
 
09 ordenamiento-en-vectores-en-c
09 ordenamiento-en-vectores-en-c09 ordenamiento-en-vectores-en-c
09 ordenamiento-en-vectores-en-c
 
08 mas-de-vectores-en-c
08 mas-de-vectores-en-c08 mas-de-vectores-en-c
08 mas-de-vectores-en-c
 
07 vectores-en-c final
07 vectores-en-c final07 vectores-en-c final
07 vectores-en-c final
 
06 clases-en-c
06 clases-en-c06 clases-en-c
06 clases-en-c
 
05 cadenas-de-caracteres-en-c
05 cadenas-de-caracteres-en-c05 cadenas-de-caracteres-en-c
05 cadenas-de-caracteres-en-c
 
04 mas-estructuras-iterativas-en-c
04 mas-estructuras-iterativas-en-c04 mas-estructuras-iterativas-en-c
04 mas-estructuras-iterativas-en-c
 
03 estructuras-iterativas-en-c
03 estructuras-iterativas-en-c03 estructuras-iterativas-en-c
03 estructuras-iterativas-en-c
 
02 mas-de-las-estructuras-de-programacion-en-c
02 mas-de-las-estructuras-de-programacion-en-c02 mas-de-las-estructuras-de-programacion-en-c
02 mas-de-las-estructuras-de-programacion-en-c
 
01 estructuras-de-programacion-en-c
01 estructuras-de-programacion-en-c01 estructuras-de-programacion-en-c
01 estructuras-de-programacion-en-c
 
Procesamiento del lenguaje natural con python
Procesamiento del lenguaje natural con pythonProcesamiento del lenguaje natural con python
Procesamiento del lenguaje natural con python
 
Actividades de aprendizaje en Moodle
Actividades de aprendizaje en MoodleActividades de aprendizaje en Moodle
Actividades de aprendizaje en Moodle
 
Creación de grupos en Moodle
Creación de grupos en MoodleCreación de grupos en Moodle
Creación de grupos en Moodle
 
Introducción a la progrogramación orientada a objetos con Java
Introducción a la progrogramación orientada a objetos con JavaIntroducción a la progrogramación orientada a objetos con Java
Introducción a la progrogramación orientada a objetos con Java
 
Como crear un diagrama de clases
Como crear un diagrama de clasesComo crear un diagrama de clases
Como crear un diagrama de clases
 
Diagrama de clases - Ejemplo monográfico 02
Diagrama de clases - Ejemplo monográfico 02Diagrama de clases - Ejemplo monográfico 02
Diagrama de clases - Ejemplo monográfico 02
 
Diagrama de clases - Ejemplo monográfico 01
Diagrama de clases - Ejemplo monográfico 01Diagrama de clases - Ejemplo monográfico 01
Diagrama de clases - Ejemplo monográfico 01
 
Otro ejemplo de diagrama de clases UML
Otro ejemplo de diagrama de clases UMLOtro ejemplo de diagrama de clases UML
Otro ejemplo de diagrama de clases UML
 
Un ejemplo de diagrama de clases
Un ejemplo de diagrama de clasesUn ejemplo de diagrama de clases
Un ejemplo de diagrama de clases
 

Kürzlich hochgeladen

FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
El Fortí
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Francisco158360
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Fernando Solis
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
UPTAIDELTACHIRA
 

Kürzlich hochgeladen (20)

Tema 11. Dinámica de la hidrosfera 2024
Tema 11.  Dinámica de la hidrosfera 2024Tema 11.  Dinámica de la hidrosfera 2024
Tema 11. Dinámica de la hidrosfera 2024
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024
 
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes d
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptx
 
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
SESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.docSESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.doc
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
 
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIAFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
 

Ejercicios Python parte 4

  • 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.