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)