3. ¿Porqué escogimos python?
• El fin de este juego es que el usuario aprenda programar, y bien
¿porqué iniciar con un lenguaje tan complejo como lo es Java, o C++?
Por eso decidimos enseñar python.
• Es un lenguaje realmente poderoso, lo mismo que se puede
programar en cualquier otro lenguaje (orientado a objetos,
imperativo) se puede hacer en éste, tanto videojuegos como
aplicaciones de escritorio.
• Tiene una sintaxis realmente corta y sencilla. Mientras en C++ o Java
ocupamos más de 3 líneas de código para imprimir un “Hola mundo”,
en python con una sola línea basta.
4. • Al tener una sintaxis tan sencilla, no hay que perder mucho tiempo
buscando errores, y esto nos lleva a escalar más rápido en el
aprendizaje de este lenguaje.
• Después de haber aprendido este lenguaje, se puede seguir cualquier
otro de manera más sencilla (de cualquier paradigma de
programación), ¿por qué? Porque el programador ya posee la lógica
de programación, la cual no cambia de un lenguaje a otro.
• No hay que mal interpretar, python por más sencillo que se escuche
es muy potente. Por algo lo usa la NASA.
¿Porqué escogimos python?
6. • Comentarios: detrás de #
• Asignación: se usa =
• Ej:
>>>a=3+2J
>>> # Esto es un comentario
>>>B=7#asignación
7. Definición de funciones:
>>>def nombrefunción(arg1,arg2..):
instrucción1
instrucción2
...................
instrucciónN
La indentación delimita qué instrucciones pertenecen a la función.
A no ser que se use return, la función devuelve None
9. Ciclo For:
>>>for variable in variable_lista:
instrucciones
Range: usadode la forma range(i) genera la lista[0,1,...,i].
usadode la forma range(i,j) genera la lista[i,i+1,...,j-1]
10. Función filter:
filter(función, lista_arg) devuelve una lista con los elementos x de
lista_argquecumplenf(x) = true.
>>>def f(x): return x%2 != 0 and x%3 != 0
>>>filter(f, range(2,25))
[5,7,11,13,17,19,23]
12. Función reduce:
reduce(funcion, lista_arg) llama a función con los dos primeros
elementos de lista_arg, luego la llama con el tercero y el resultado
anterior, etc. Si sólo hay un elemento se devuelve este, y sino hay
ninguno da error.
>>>def add(x,y): return x+y
...
>>>reduce(add, range(1,11))
55
13. List Comprehensions: operaciones muy intuitivas con listas
>>>vec= [2,4,6]
>>>[3 * x for x in vec]
[6,12,18]
>>>[3 * x for x in vecif x > 3]
[12,18]
>>>[[x,x**2] for x in vec]
[[2,4],[4,16],[6,36]]
14. Definición y uso de Clases:
>>>class NombreDeClase:
... sentencia1
...................
... sentenciaN
...
>>>variable = NombreDeClase()
16. • Función __init__:
Se puede incluir una función, llamada init, que se ejecute siempre que
se cree una instancia de la clase.
Def __init__(self):
instrucciones
init no puede hacer return.
17. Las variables de instancia no necesitan declararse.
>>>x=MiClase()
>>>x.numero=7
x.f() equivalea MiClase.f(x)
>>>MiClase.f(x)
“holamundo”
18. Para definir una subclase se escribe:
class NombreDeClase(NombreSubclase)
Se heredan funciones y variables de clase.
20. • Podemos redefinir una función en la subclase:
>>>class MiSubClase(MiClase):
... def f(self):
... return “HOLA MUNDO”
...
>>>x = MiSubClase()
>>>x.f()
“HOLA MUNDO”
21. Y para llamar al método de la superclase:
>>>x.f()
“holamundo”
>>>MiClase.f(x)
• “holamundo”
22. • Es muy fácil dotar de herencia múltiple, basta con incluir más clases
comoargumentosen la definición:
>>>class MiSubClase(Superclase1, Superclase2,...)
A la horade resolver un mensaje a un objeto de MiSubClase se buscará
el método en la propia clase, sino se encuentra se busca en
Superclase1 (y en sussuperclases), luego en Superclase2, etc.
24. Aprendizaje Lúdico en la programación
El diseño de las prácticas de laboratorio debe tener en cuenta los
siguientes aspectos:
° La limitación de tiempo que los planes de estudio actuales imponen a
las asignaturas
° La coordinación que requiere la parte teórica con la práctica. No se
debe exigir al alumno conceptos no explicados en teoría.
° La evolución de la complejidad de las prácticas debe ir aumentando
gradualmente, evitando grandes saltos teóricos entre una práctica y la
siguiente.
25. • Los ejercicios para enseñanza de programación se encuentran enfocados al
aprendizaje de:
- Elementos básicos necesarios para la construcción de un programa:
estructura general, variables, tipos, estructuras de datos simples, estructuras
de control, modularización de programas y entrada salida elemental.
- Estructuras de datos complejas y ficheros.
- Tipos abstractos de datos y diseño e implementación de módulos de
librerías.
Para el caso del proyecto en desarrollo por el alcance del mismo se limitará a
trabajar en el primer punto. Juegos dirigidos por menús, conversacionales,
siempre con una entrada-salida en modo texto sencilla, serían adecuados
para este nivel. En este sentido, los siguientes apartados de este primer
ejercicio práctico requerirán que el programa proporcione pistas.
26. Otros lenguajes de programación
• Java: Es de los lenguajes más usados, ya que es multiplataforma, esto
quiere decir que no solo se ejecuta en PC, también en celulares y
otros dispositivos.
• C++: Es el más usado para la creación de videojuegos avanzados, ya
que no consume muchos recursos del procesador ni memoria RAM.
• HTML: Se utiliza para la creación de páginas web, existen otros
lenguajes que lo complementan para dar un mejor diseño, ejemplo
CSS.
27. Referencia
• Bueno, D., Garralón, J., Jerez, J. y Maña, M. (2001) Aprendizaje Lúdico en Laboratorio de
Programación. Editorial Edició Univ. Illes Balears. Extraído de
http://www.researchgate.net/profile/Antonio_Mana/publication/237680627_Aprendizaje_Ldico_
en_Laboratorio_de_Programacin/links/0046352a89a76a1e55000000.pdf
• Barranco, F., Guerrero, A., Entrena, M. y González, A. (2005) Introducción a Python [diapositivas
de PowerPoint] Extraído de http://lsi.ugr.es/~pdo/Seminarios/Python2005.pdf
• Marciniak, Bartosz. (2013) Por qué Python debería ser el primer lenguaje de programación que
aprendas [artículo web]. Extraído de: http://www.thehelloworldprogram.com/es/python-es/por-
que-python-deberia-ser-el-primer-lenguaje-de-programacion-que-aprendas/