tutorial_de_python

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
tutorial_de_python [2022/11/18 19:59] – [Los diccionarios] perontutorial_de_python [2022/11/19 22:22] (actual) – [Tutorial de Python] peron
Línea 1: Línea 1:
 ======Tutorial de Python====== ======Tutorial de Python======
-Este tutorial fue escrito por ~sdemingo.+¡Buenvenid@ la introducción de programación en Python de ~sdemingo!
  
-**Python** es un lenguaje de programación de alto nivel cuya filosofía hace hincapié en la legibilidad de su código fuente.  +**Python** es un lenguaje de programación de alto nivel cuya filosofía hace hincapié en la legibilidad de su código fuente. Es sencillo de aprender por lo que es ideal para aprender a programar en un [[pubnix]].
- +
-Es sencillo de aprender por lo que es ideal para enseñar a programar+
  
 >Python fue creado por Guido van Rossum a finales de los años 80 en un centro de investigación de Países Bajos. Su nombre viene del grupo de cómico británico Monty Python. >Python fue creado por Guido van Rossum a finales de los años 80 en un centro de investigación de Países Bajos. Su nombre viene del grupo de cómico británico Monty Python.
Línea 10: Línea 8:
 =====Introducción===== =====Introducción=====
  
-Un //programa// no es más que un conjunto de instrucciones que el ordenador ejecutará de forma secuencial, desde la primera a la última. +Un //programa// no es más que un **conjunto de instrucciones secuenciales**, que el ordenador ejecutará, desde la primera a la última. 
  
-Para escribir programas la herramienta básica es [[editores_de_texto|un editor de texto]], donde podrás escribir las instrucciones que quieres que formen parte de tu programa. Tu programa, además de instrucciones manejará también datos, que podrán ser datos internos del propio programa o bien introducidos por el usuario. +Para escribir programas la herramienta básica es un [[editores_de_texto|editor de texto]], donde podrás escribir las instrucciones que quieres que formen parte de tu programa. Tu programa, además de //instrucciones// manejará también //datos//, que podrán ser datos internos del propio programa o bien introducidos por el usuario. 
  
 **Python** es un lenguaje de programación //interpretado//. Esto quiere decir que el programa que tu escribirás en un fichero de texto no será compilado por ningún programa externo sino que será leído y procesado por un intérprete de Python. Para que el sistema ejecute las instrucciones de tu programa no vale con indicarle que quieres ejecutarlo. A quien realmente ejecutas es al intérprete de Python, y es a el, a quien le dices que lea tu programa.  **Python** es un lenguaje de programación //interpretado//. Esto quiere decir que el programa que tu escribirás en un fichero de texto no será compilado por ningún programa externo sino que será leído y procesado por un intérprete de Python. Para que el sistema ejecute las instrucciones de tu programa no vale con indicarle que quieres ejecutarlo. A quien realmente ejecutas es al intérprete de Python, y es a el, a quien le dices que lea tu programa. 
Línea 312: Línea 310:
  
 =====4. Instrucciones de Control===== =====4. Instrucciones de Control=====
-Un programador puede incluir ciertas instrucciones en su código que permitan alterar su flujo secuencial. +Aprendamos hoy las instrucciones que un@ programadorpuede incluir en su código que permitan alterar su flujo secuencial. Las //instrucciones de control// se agrupan normalmente en dos familias:
- +
-Este tipo de instrucciones se agrupan normalmente en dos familias:+
  
   * **Instrucciones selectivas**: Son aquellas que crean varias ramas o bloques de instrucciones. En cada ejecución, según a valores internos del programa, se optará por ejecutar la rama de instrucciones correcta.   * **Instrucciones selectivas**: Son aquellas que crean varias ramas o bloques de instrucciones. En cada ejecución, según a valores internos del programa, se optará por ejecutar la rama de instrucciones correcta.
Línea 412: Línea 408:
  
 =====5. Funciones ===== =====5. Funciones =====
 +Las funciones en programación se utilizan para **agrupar bloques de código bajo un nombre**. Esta técnica permite a los programadores reutilizar estos bloques siempre que quieran sin necesidad de volver a escribirlos, usando solo el nombre del bloque para referirse a ellos.
 +
 +<code python>
 +    def saludo():
 +        nombre = input("Escribe tu nombre: ")
 +        print ("Hola "+nombre+", ¿cómo estás?")
 +</code>
 +
 +Por ejemplo, en el recuadro anterior hemos creado una función llamada ''saludo'' que pida al usuario su nombre y le salude. A esto se le suele llamar //declarar una función//. Tras declararla usando la palabra ''def'', la podremos usar en cualquier parte de nuestro programa usando solo el nombre de la función seguido de ''()''.
 +
 +<code python>
 +    saludo()
 +</code>
 +
 +A esto se le llama //invocar// o //llamar a una función//. Podremos crear tantas funciones como queramos y estas pueden contener en su interior las instrucciones que necesitemos. La creación de funciones que agrupen los pequeños problemas que conforman el problema general que quieres
 +
 +   solucionar, es la piedra angular de la programación.
 +
 +=== Uso de parámetros ===
 +
 +Cuando invocas a una función existe la posibilidad de pasarme diferentes parámetros con información. Esto permite a la función realizar tareas con datos que no están “en su interior” sino que vienen de fuera, del código llamante. Puede sonar complejo pero en realidad no lo es. Veamos esto con un ejemplo. Hemos creado una función llamada ''mayus'' que recibe una lista de palabras. Como le haremos llegar esta lista a la función en el momento de su invocación todavía no nos preocupa. El caso es que ''mayus'' recibe una lista y la recorre convirtiendo las palabras de esta lista en mayúscula. Veamos el código de su declaración:
 +
 +<code python>
 +    def mayus(lista):
 +        i=0
 +        while i<len(lista):
 +            lista[i] = lista[i].upper()
 +            i=i+1
 +</code>
 +
 +el código de ''mayus'' es sencillo. Declara una variable numérica ''i'' como ''0'' y usa una instrucción ''while'' para ejecutar su bloque de instrucciones tantas veces como elementos haya en la lista. Por eso la expresión asociada a ''while'' es ''i<len(lista)''. En cada ejecución del bucle se accede la palabra de la lista que ocupa esa posición: primero la palabra ''0'', luego la ''1'', luego ''2'', etc. Y se le asigna un nuevo valor: el de esa misma palabra pero transformada en mayúsculas gracias al método ''upper()''. Por último incrementamos ''i'' en uno y ejecutamos el bucle una vez más. No nos importa lo larga o corta que sea la lista, la recorreremos siempre igual gracias a la instrucción ''while''.
 +
 +Pero ¿de donde sale la lista?. La lista no está declarada en el anterior código. La lista nos llegará cuando se invoque a la función ''mayus''. En ese momento, en el de la invocación o llamada, será cuando se asigne valor al parámetro lista.
 +
 +Veamos un ejemplo de como llamaríamos a esta función. Crearemos dos listas diferentes y para convertirlas a ambas a mayúsculas usaremos la función declarada previamente:
 +
 +<code python>
 +    animales = ["perro", "gato", "ratón", "tortuga"]
 +    personas = ["sergio", "luis", "marta", "josé", "maría"]
 +    
 +    mayus(animales)
 +    print (animales)
 +
 +    mayus(personas)
 +    print (personas)
 +</code>
 +
 +En ambos casos se convierte la lista a mayúsculas usando la función ''mayus''. Esta función se ejecutará dos veces y en cada caso, la variable o parámetro lista se convertirá en una lista diferente. En la primera invocación, lista será realmente animales. Mientras que en la segunda, lista será personas.
 +
 +Puedes ver todo este ejemplo completo en el fichero [[mayusculas.py]].
 +
 +Podemos declarar funciones con un número mayor de parámetros y en ese caso, en la invocación hemos de respetar el orden de esos parámetros para que la asignación sea correcta:
 +
 +<code python>
 +    def ejemplo(indice, palabra, bool):
 +        print ("El indice vale "+str(indice))
 +        print ("La palabra vale "+palabra)
 +        print ("El booleano vale "+str(bool))
 +
 +    // Ejemplos de declaración:
 +
 +    ejemplo (9, "hola", False)
 +    ejemplo (-4, "adios", True)
 +    ejemplo (321, "buenas", True)
 +</code>
 +
 +==== Valores de retorno====
 +
 +Una función, además de realizar una serie de operaciones puede retornar un valor a quien la invoca. Este valor puede ser útil para saber como ha ido el trabajo de la función o para recuperar un dato que ella ha generado. Este valor retornado puede ser de cualquier tipo: entero, string, tupla, lista, ….
 +
 +Para que una función retorne un valor usaremos la instrucción ''return'' y hemos de tener en cuenta que cuando esta instrucción se ejecute, la ejecución de la función finaliza. Nunca pongas ninguna instrucción que pertenezca a la función bajo un ''return'' pues nunca será ejecutada.
 +
 +Veamos un ejemplo. Vamos a crear una instrucción que recibe un número entero como parámetro y construye y retorna una lista de los números pares hasta ese número:
 +
 +<code python>
 +    def construyePares(limite):
 +        pares=[]
 +        for i in range(1, limite+1):
 +            if (i % 2 == 0):
 +                pares.append(i)
 +
 +        return pares
 +</code>
 +
 +Para recuperar el valor retornado por la lista usaremos una variable junto con su invocación de la siguiente manera:
 +<code pyhton>
 +   listaPares = construyePares(10)
 +</code>
 +
 +Ahora tendremos una lista llamada ''listaPares'' construida dentro de la función y retornada por esta que tiene la forma ''[2, 4, 6, 8, 10]''.
 +
 +===Ejercicios===
 +
 +1. Crea una función que reciba un parámetro numérico e informe si es un número primo o no. Úsala para imprimir por pantalla los números primos hasta el ''100''. [[ej5a.py|Solución]]
 +
 +===== 6. Entrada/Salida =====
 +
 +Las funciones y operaciones que se agrupan dentro de este capítulo son las que nos permitirán adjuntar datos a nuestros programas y extraer datos de ellos. Ya conocemos dos de estas funciones: ''input'' y ''print''. Vamos ahora a conocer formas para **leer y escribir información en ficheros** . 
 +
 +>Estas funciones puede sernos muy útil para conseguir que nuestros programas tengan información perdurable sobre el sistema de ficheros.
 +
 +antes de empezar a usar los ficheros y luego de terminar de utilizarlos debemos utilizar las funciones de apertura y de cierre de los mismos.
 +
 +  * ''open()'': Indica al sistema operativo que quieres abrir un fichero para leerlo, a escribirlo, etc.
 +  * ''close()'': Una vez finalizado el trabajo de archivaje, indica al sistema que quieres dejar de utilizar el fichero, y que lo cierre.
 +
 +La función ''open'' nos devuelve una //variable de tipo// ''File'' que nos ayudará a manejar el fichero. Esta variable u objeto registra la última posición leída u escrita. Para invocar correctamente ''open'' necesitamos al menos dos argumentos: la //ruta del fichero sobre el sistema// (relativa al directorio donde estamos situados o absoluta desde la raíz del sistema) y el //modo de trabajo//. Hemos de seleccionar uno de los siguientes modos de trabajo:
 +
 +| **Modo de Trabajo ** | **Resultado** |
 +| ''r'' | Abre el fichero para leerlo. |
 +| ''w'' | Abre el fichero para escribirlo. Si este existe, su contenido anterior será eliminado y sino existe, se creará. |
 +| ''a'' | Abre el fichero para escribirlo pero añadiendo el contenido a lo que ya teníamos en su interior. |
 +| ''+'' | Abre el fichero para leerlo y para escribirlo simultáneamente. |
 +
 +===Leer de ficheros ===
 +
 +Para leer un fichero con Python debemos primero indicar al sistema nuestra intención para luego proceder a leerlo. Una vez lo hayamos abierto, sobre el fichero podemos realizar diferentes **operaciones de lectura**. A continuación listo las más comunes:
 +
 +| ''read(n)'' | Lee //n bytes// del fichero y devuelve esos bytes como una cadena. Si omites este valor provocas te devolverá __todo el contenido del fichero como una sola cadena__. |
 +| ''readline()'' | Lee una sola línea del fichero. |
 +| ''readlines()'' | Lee toda las líneas del fichero y las devuelve como una //lista de cadenas//, donde cada línea opera como miembro de esta lista de cadenas. |
 +
 +Veamos dos ejemplos. En este primero leeremos todo el fichero de golpe guardándolo en una sola cadena:
 +
 +<code python>
 +fichero = open("nombre.txt","r")
 +texto = fichero.read()
 +fichero.close()
 +</code>
 +
 +Ahora leeremos todo el fichero pero separado en líneas y nos quedaremos solo con las dos últimas:
 +
 +<code python>
 +    fichero = open("nombre.txt", "r")
 +    lineas = fichero.readlines()[-2:]
 +    fichero.close()
 +</code>
 +
 +===Escribir en ficheros ===
 +
 +Para escribir un fichero, las operaciones previas son similares a las de lectura. Necesitamos ejecutar ''open'' con el modo adecuado. Una vez hecho esto podremos elegir dos funciones para escribir en el:
 +
 +| ''write(text)'' | Escribe el string sobre el fichero. |
 +| ''writelines(list)'' | Escribe en el fichero una lista de cadenas. |
 +
 +Si queremos escribir manualmente un salto del línea para separar dos líneas entre sí hemos de escribir el carácter ''\n''. Veamos un ejemplo:
 +
 +<code python>
 +fichero = open("salida.txt","w")
 +fichero.write("Esta será la primera línea del fichero")
 +fichero.write("\n")
 +fichero.write("Esta será la segunda línea")
 +fichero.close()
 +</code>
 +
  
  • tutorial_de_python.1668801562.txt.gz
  • Última modificación: 2022/11/18 19:59
  • por peron