Diferencias
Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
tutorial_de_python [2022/11/18 16:14] – peron | tutorial_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 |
- | + | ||
- | Es sencillo de aprender por lo que es ideal para enseñar | + | |
>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 // | + | Un // |
- | 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 |
**Python** es un lenguaje de programación // | **Python** es un lenguaje de programación // | ||
Línea 277: | Línea 275: | ||
</ | </ | ||
- | ====Los diccionarios==== | + | ====Diccionarios==== |
Los // | Los // | ||
Línea 312: | Línea 310: | ||
=====4. Instrucciones de Control===== | =====4. Instrucciones de Control===== | ||
+ | Aprendamos hoy las instrucciones que un@ programador@ puede incluir en su código que permitan alterar su flujo secuencial. Las // | ||
+ | |||
+ | * **Instrucciones selectivas**: | ||
+ | |||
+ | * **Instrucciones iterativas**: | ||
+ | |||
+ | ==== Instrucciones Selectivas ==== | ||
+ | === If === | ||
+ | La principal instrucción selectiva de Python es '' | ||
+ | |||
+ | Veamos un ejemplo sencillo de uso de una instrucción de este tipo: | ||
+ | |||
+ | <code python> | ||
+ | num = input(" | ||
+ | mul = int(num) * 3 | ||
+ | |||
+ | if (mul > 200): | ||
+ | print ("Has introducido un número muy grande!!" | ||
+ | |||
+ | print (mul) | ||
+ | </ | ||
+ | |||
+ | Lo primero que vemos en el código anterior (este código está en el fichero multi_if.py es que tenemos dos datos numéricos: uno que pedimos por teclado al usuario llamado '' | ||
+ | |||
+ | Tras esto lo que queremos es evaluar el valor de '' | ||
+ | |||
+ | Esto lo hemos conseguido con la instrucción '' | ||
+ | |||
+ | >Nota sobre la tabulación: | ||
+ | ===else=== | ||
+ | A la instrucción '' | ||
+ | <code python> | ||
+ | num = input(" | ||
+ | mul = int(num) * 3 | ||
+ | |||
+ | if (mul > 200): | ||
+ | print ("Has introducido un número muy grande!!" | ||
+ | else: | ||
+ | print (mul) | ||
+ | </ | ||
+ | |||
+ | Con esta variación ahora, si el valor de '' | ||
+ | |||
+ | ====Instrucciones iterativas==== | ||
+ | |||
+ | La otra familia de instrucciones de control de flujo son las **iterativas**, | ||
+ | ===While=== | ||
+ | La primera de estas instrucciones es '' | ||
+ | <code python> | ||
+ | num = input(" | ||
+ | mul = int(num) | ||
+ | |||
+ | while (mul < 200): | ||
+ | mul = mul * int(num) | ||
+ | print (mul) | ||
+ | |||
+ | print ("Ya hemos acabado" | ||
+ | </ | ||
+ | |||
+ | El código anterior toma un número por teclado y lo va multiplicando por si mismo. Vemos que la expresión booleana es '' | ||
+ | ===For=== | ||
+ | Otra instrucción iterativa muy usada en Python es '' | ||
+ | |||
+ | Por ejemplo, partimos de una lista llamada animales. Vamos a imprimir por pantalla un mensaje por cada animal de la lista: | ||
+ | <code python> | ||
+ | | ||
+ | |||
+ | for animal in animales: | ||
+ | print ("Me gustan los " | ||
+ | </ | ||
+ | |||
+ | Tras ejecutar el código anterior veremos una salida similar a la que se muestra a continuación. La variable animal ha ido pivotando su valor entre los valores de la lista siguiendo su orden y valiendo ese valor en cada iteración o vuelta del bucle. El bucle termina cuando ya no hay mas miembros de la lista sobre los que pivotar. | ||
+ | |||
+ | < | ||
+ | Me gustan los perros | ||
+ | Me gustan los gatos | ||
+ | Me gustan los pajaros | ||
+ | Me gustan los zorros | ||
+ | Me gustan los burros | ||
+ | </ | ||
+ | |||
+ | ¿Qué tipos de dato pueden ser recorridos con un bucle '' | ||
+ | |||
+ | ===Range=== | ||
+ | Puede sernos útil conocer la instrucción '' | ||
+ | |||
+ | <code python> | ||
+ | for i in range(10, | ||
+ | print (i) | ||
+ | </ | ||
+ | |||
+ | === Ejercicios === | ||
+ | |||
+ | 1. Pide al usuario dos números e imprime cual de ellos es el mayor. [[Ej4a.py|Solución]]. | ||
+ | |||
+ | 2. Genera una lista de nombres que sigan el siguiente patrón: “doc1”, | ||
=====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, | ||
+ | |||
+ | <code python> | ||
+ | def saludo(): | ||
+ | nombre = input(" | ||
+ | print ("Hola " | ||
+ | </ | ||
+ | |||
+ | Por ejemplo, en el recuadro anterior hemos creado una función llamada '' | ||
+ | |||
+ | <code python> | ||
+ | saludo() | ||
+ | </ | ||
+ | |||
+ | 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 | ||
+ | |||
+ | | ||
+ | |||
+ | === 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 '' | ||
+ | |||
+ | <code python> | ||
+ | def mayus(lista): | ||
+ | i=0 | ||
+ | while i< | ||
+ | lista[i] = lista[i].upper() | ||
+ | i=i+1 | ||
+ | </ | ||
+ | |||
+ | el código de '' | ||
+ | |||
+ | 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 '' | ||
+ | |||
+ | 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 = [" | ||
+ | personas = [" | ||
+ | | ||
+ | mayus(animales) | ||
+ | print (animales) | ||
+ | |||
+ | mayus(personas) | ||
+ | print (personas) | ||
+ | </ | ||
+ | |||
+ | En ambos casos se convierte la lista a mayúsculas usando la función '' | ||
+ | |||
+ | 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, | ||
+ | print ("El indice vale " | ||
+ | print ("La palabra vale " | ||
+ | print ("El booleano vale " | ||
+ | |||
+ | // Ejemplos de declaración: | ||
+ | |||
+ | ejemplo (9, " | ||
+ | ejemplo (-4, " | ||
+ | ejemplo (321, " | ||
+ | </ | ||
+ | |||
+ | ==== 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 '' | ||
+ | |||
+ | 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 | ||
+ | </ | ||
+ | |||
+ | Para recuperar el valor retornado por la lista usaremos una variable junto con su invocación de la siguiente manera: | ||
+ | <code pyhton> | ||
+ | | ||
+ | </ | ||
+ | |||
+ | Ahora tendremos una lista llamada '' | ||
+ | |||
+ | ===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 '' | ||
+ | |||
+ | ===== 6. Entrada/ | ||
+ | |||
+ | 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: '' | ||
+ | |||
+ | >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. | ||
+ | |||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | La función '' | ||
+ | |||
+ | | **Modo de Trabajo ** | **Resultado** | | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | |||
+ | ===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: | ||
+ | |||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | |||
+ | Veamos dos ejemplos. En este primero leeremos todo el fichero de golpe guardándolo en una sola cadena: | ||
+ | |||
+ | <code python> | ||
+ | fichero = open(" | ||
+ | texto = fichero.read() | ||
+ | fichero.close() | ||
+ | </ | ||
+ | |||
+ | Ahora leeremos todo el fichero pero separado en líneas y nos quedaremos solo con las dos últimas: | ||
+ | |||
+ | <code python> | ||
+ | fichero = open(" | ||
+ | lineas = fichero.readlines()[-2: | ||
+ | fichero.close() | ||
+ | </ | ||
+ | |||
+ | ===Escribir en ficheros === | ||
+ | |||
+ | Para escribir un fichero, las operaciones previas son similares a las de lectura. Necesitamos ejecutar '' | ||
+ | |||
+ | | '' | ||
+ | | '' | ||
+ | |||
+ | Si queremos escribir manualmente un salto del línea para separar dos líneas entre sí hemos de escribir el carácter '' | ||
+ | |||
+ | <code python> | ||
+ | fichero = open(" | ||
+ | fichero.write(" | ||
+ | fichero.write(" | ||
+ | fichero.write(" | ||
+ | fichero.close() | ||
+ | </ | ||
+ | |||