python:index
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| python:index [2019/06/17 13:59] – rlunaro | python:index [2022/12/02 21:02] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Python ====== | ====== Python ====== | ||
| + | ===== md5sum in python ===== | ||
| - | Notas para un curso de python. | ||
| - | |||
| - | ===== Sesión 1: toma de contacto ===== | ||
| - | |||
| - | ==== Objetivos ==== | ||
| - | |||
| - | Tener un IDE instalado y capaz de ejecutar un "hola mundo" | ||
| - | |||
| - | ==== Forma de llevarlo a cabo ==== | ||
| - | |||
| - | === Antes de empezar === | ||
| - | |||
| - | Deberemos tener un editor de texto (notepad++) instalado en | ||
| - | el equipo. | ||
| - | |||
| - | === Instalar intérprete de python y un editor de texto === | ||
| - | |||
| - | Comenzaremos por instalar y configurar el intérprete de python: | ||
| - | conviene asegurarse que queda correctamente instalado el PATH | ||
| - | del usuario. | ||
| - | |||
| - | Hacer una ejecución del intérprete en línea de comandos y ver | ||
| - | que se ejecuta correctamente. | ||
| - | |||
| - | **Usar el intérprete como calculadora** | ||
| - | |||
| - | Ejecutar el intérprete de python e introducir algunas expresiones | ||
| - | para que las calcule: | ||
| <code python> | <code python> | ||
| - | C: | ||
| - | Python 3.7.0 (v3.7.0: | ||
| - | 4)] on win32 | ||
| - | Type " | ||
| - | >>> | ||
| - | 40 | ||
| - | >>> | ||
| - | 40.0 | ||
| - | >>> | ||
| - | 1.6666666666666667 | ||
| - | >>> | ||
| - | 5.0 | ||
| - | >>> | ||
| - | </ | ||
| - | Enseñar el comando quit() para cerrar el intérprete. | + | # |
| + | # md5sum.py | ||
| + | # | ||
| - | Volveremos a abrir el intérprete y ejecutaremos: | + | import sys |
| + | import hashlib | ||
| - | <code python> | ||
| - | print( "hello world" ); | ||
| - | </ | ||
| - | A continuación usaremos un editor de texto para crear | + | if __name__ == ' |
| - | nuestro primer | + | |
| + | for filename in sys.argv[1: | ||
| + | with open(filename, | ||
| + | md5 = hashlib.md5() | ||
| + | chunksize = 65536 # 64k' | ||
| + | content = file.read( chunksize ) | ||
| + | while content != b'' | ||
| + | md5.update(content) | ||
| + | content = file.read( chunksize ) | ||
| - | <code python> | + | md5.digest() |
| - | print( "hello world" ); | + | if len(sys.argv[1: |
| - | </ | + | print( |
| - | + | print(md5.hexdigest()) | |
| - | Ejecutar nuestro script: | + | |
| - | <code shell> | ||
| - | R: | ||
| - | hola mundo | ||
| </ | </ | ||
| - | A continuación haremos un inciso sobre codificación del fichero y explicaremos cómo | ||
| - | introducir la codificación de caracteres en nuestro fichero python: | ||
| - | |||
| - | <code python> | ||
| - | # -*- coding: utf8 -*- | ||
| - | |||
| - | |||
| - | print( "hello world" ); | ||
| - | |||
| - | |||
| - | </ | ||
| - | |||
| - | <WRAP center round important 60%> | ||
| - | Recomendar aquí dejar líneas en blanco para separar los contenidos. | ||
| - | </ | ||
| - | |||
| - | <WRAP center round info 60%> | ||
| - | Reto: hacer un programa que haga un calculo sencillo. Antes hemos | ||
| - | visto cómo usarlo para hacer operaciones matemáticas. ¿Puede usarse | ||
| - | entonces lo que hemos visto para encapsular esas operaciones en | ||
| - | un script? | ||
| - | </ | ||
| - | |||
| - | === Vamos a jugar con los mayores: instalando un IDE === | ||
| - | |||
| - | Comenzamos explicando qué es un IDE y porqué necesitamos uno. | ||
| - | |||
| - | Como IDE usaremos eclipse (eclipse.org) y añadiremos la extensión | ||
| - | " | ||
| - | |||
| - | Configuraremos el entorno de desarrollo identificando el interprete | ||
| - | de python que hemos instalado. | ||
| - | |||
| - | Construiremos un nuevo proyecto que será nuestro "hola mundo" de | ||
| - | nuevo, incluyendo varias instrucciones. | ||
| - | |||
| - | Primero **ejecutaremos** el programa python y luego **depuraremos** | ||
| - | el programa python; poniendo puntos de parada. | ||
| - | |||
| - | Y con esto acaba la lección. | ||
| - | |||
| - | ===== Sesión 2: tipos de datos y variables ===== | ||
| - | |||
| - | ==== Objetivos ==== | ||
| - | |||
| - | Pues nada, saber qué es una variable, un tipo de datos y | ||
| - | saber crear y operar con variables. | ||
| - | |||
| - | ==== Forma de llevarlo a cabo ==== | ||
| - | |||
| - | Abrimos el intérprete y comenzamos haciendo algunas operaciones | ||
| - | aritméticas con **enteros**. A continuación explicamos cómo hacer | ||
| - | las mismas operaciones con **flotantes**. | ||
| - | |||
| - | A continuación explicaremos las **variables** para continuar con los | ||
| - | strings. Dado que los strings se pueden especificar con | ||
| - | comillas simples o dobles, practicaremos ambos y el escapado de las mismas. | ||
| - | |||
| - | Proseguiremos explicando los **caracters especiales** de los strings. | ||
| - | |||
| - | Y seguiremos con los **real strings**: r'un string cualquiera', | ||
| - | los literal strings: ''' | ||
| - | |||
| - | <WRAP center round info 60%> | ||
| - | Que pasará, qué misterios habrá.... Vamos a hacer una serie de ejercicios | ||
| - | para ver cómo funciona esto de las variables, expresiones, | ||
| - | </ | ||
| - | |||
| - | **Qué sale?** | ||
| - | |||
| - | <code python> | ||
| - | >>> | ||
| - | >>> | ||
| - | </ | ||
| - | |||
| - | **Y ahora???** | ||
| - | |||
| - | <code python> | ||
| - | >>> | ||
| - | >>> | ||
| - | </ | ||
| - | |||
| - | |||
| - | **Calcular el resto de la division 5/3** | ||
| - | |||
| - | <code python> | ||
| - | >>> | ||
| - | </ | ||
| - | |||
| - | **Crear una cadena con 20 " | ||
| - | |||
| - | <code python> | ||
| - | >>> | ||
| - | </ | ||
| - | |||
| - | |||
| - | |||
| - | ===== Sesión 3: instrucciones de control ===== | ||
| - | |||
| - | ==== Objetivos ==== | ||
| - | |||
| - | Conocer el if, while, for. Tambien conocer range() y los valores booleanos y trabajar con ellos. | ||
| - | |||
| - | ==== Forma de llevarlo a cabo ==== | ||
| - | |||
| - | Abriremos el IDE (eclipse con pydev) y crearemos algunos programas de ejemplo para trabajar el if y el while. | ||
| - | |||
| - | ===== Sesión 4: tipos de datos estructurados ===== | ||
| - | |||
| - | ==== Objetivos ==== | ||
| - | |||
| - | Strings, listas, tuplas, diccionarios y sets. | ||
| - | |||
| - | ==== Forma de llevarlo a cabo ==== | ||
| - | |||
| - | Esta lección se puede llevar a cabo desde el interprete de python. | ||
| - | |||
| - | **Strings** | ||
| - | |||
| - | Comenzaremos viendo algunas instrucciones sobre los strings: acceder a un caracter, pasar a mayúsculas, | ||
| - | a minúsculas, | ||
| - | |||
| - | **Listas** | ||
| - | |||
| - | La lista es quizá la estructura de datos que más usaremos, dado que es el equivalente a los | ||
| - | arrays en otros lenguajes de programación. | ||
| - | |||
| - | **Diccionarios** | ||
| - | |||
| - | Los diccionarios son arrays asociativos. | ||
| - | |||
| - | **Sets** | ||
| - | |||
| - | **Tuplas** | ||
| < | < | ||
| + | @echo off | ||
| + | rem md5sum.cmd | ||
| - | + | python "%~dp0md5sum.py" | |
| - | # instalación | + | |
| - | + | ||
| - | + | ||
| - | pip install virtualenv | + | |
| - | + | ||
| - | + | ||
| - | # creación de una copia del entorno | + | |
| - | + | ||
| - | virtualenv python-env | + | |
| - | + | ||
| - | donde "python-env" | + | |
| - | + | ||
| - | + | ||
| - | # arrancar el entorno virtual | + | |
| - | + | ||
| - | Este comando nos será de utilidad para cuando queramos usar el " | + | |
| - | este entorno para instalar más librerías: | + | |
| - | + | ||
| - | python-env\Scripts\activate | + | |
| - | + | ||
| - | Es muy conveniente anotar las librerías instaladas en un fichero para que | + | |
| - | posteriores instalaciones sean perfectamente reproducibles: | + | |
| - | cuentas, disponer de un entorno virtual permite hacer estas cosas | + | |
| - | con más facilidad. | + | |
| - | + | ||
| - | + | ||
| - | # parar el entorno virtual | + | |
| - | + | ||
| - | python-env\Scripts\deactivate | + | |
| - | + | ||
| - | + | ||
| - | # ejecutar el intérprete de python sobre el entorno virtual | + | |
| - | + | ||
| - | sencillamente configuraremos como intérprete nuevo en la configuración de eclipse el | + | |
| - | nuevo entorno creado, y en la configuración del proyecto apuntaremos a dicho script | + | |
| </ | </ | ||
| - | < | ||
| - | |||
| - | import os | ||
| - | import zipfile | ||
| - | from zipfile import ZIP_DEFLATED | ||
| - | |||
| - | |||
| - | |||
| - | for root, dirs, files in os.walk(" | ||
| - | print(" | ||
| - | print(" | ||
| - | print(" | ||
| - | |||
| - | |||
| - | with zipfile.PyZipFile(" | ||
| - | my_zip_file.compression = ZIP_DEFLATED | ||
| - | my_zip_file.write( " | ||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | </ | ||
| - | |||
| - | ===== Sesión N: plantilla ===== | ||
| - | |||
| - | ==== Objetivos ==== | ||
| - | |||
| - | |||
| - | ==== Forma de llevarlo a cabo ==== | ||
python/index.1560779986.txt.gz · Last modified: 2022/12/02 21:02 (external edit)
