0% encontró este documento útil (0 votos)
2 vistas62 páginas

Introducción a la Programación en Python

El documento es una introducción a la programación en Python, cubriendo desde los fundamentos hasta conceptos avanzados como estructuras de datos, diseño de programas y manejo de excepciones. Destaca la facilidad de aprendizaje de Python, su uso en diversas aplicaciones y su creciente demanda en el mercado laboral. Además, menciona la importancia de Python en la educación y su uso en proyectos de hardware como Raspberry Pi.

Traducido por

ScribdTranslations
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
2 vistas62 páginas

Introducción a la Programación en Python

El documento es una introducción a la programación en Python, cubriendo desde los fundamentos hasta conceptos avanzados como estructuras de datos, diseño de programas y manejo de excepciones. Destaca la facilidad de aprendizaje de Python, su uso en diversas aplicaciones y su creciente demanda en el mercado laboral. Además, menciona la importancia de Python en la educación y su uso en proyectos de hardware como Raspberry Pi.

Traducido por

ScribdTranslations
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

PARTE 1: Introducción a la programación en Python

Contenido
1 Introduction............................................................................................................................................ 3
1.1 ¡Hola Mundo!. 3
1.2 Who am I ........................................................................................................................................ 3
1.3 Quiénes somos. 3
1.4 ¿Qué hace a Python?¿Increíble?4
2 Fundamentos de la programación en Python. 8
2.1 Literales ............................................................................................................................................ 8
2.2 Números. 9
2.3 Operadores9
2.4 Cadenas ...........................................................................................................................................13
2.5 DatosTipo..................................................................................................................................... 18
3 Estructura de datos en Python. 22
3.1 Lista .................................................................................................................................................22
3.2 Tuplae.............................................................................................................................................27
3.3 Diccionario.30
3.4 Set.................................................................................................................................................36
4 Diseño de Programas en Pythonn.................................................................................................................... 39

4.1 Estructura de Decisión. 39


4.2 Funciones.44
4.3 Programación Funcional. 48
4.4 Módulos........................................................................................................................................49
4.5 Programación Orientada a Objetos. 51
5 AvanzadoTofotos................................................................................................................................... 55
5.1 ArchivoEntrada/Salida55

5.2 Manejo de Excepciones. 58


5.3 Tiempo.58
5.4 Expresión Regular ....................................................................................................................... 60
5.5 Comparar Secuencias..................................................................................................................... 63
5.6 Conjunto de Problemas: ¡Hora de un desafío!. 63

3
1 Introduction

4
1.4 ¿Qué hace que Python sea increíble?

Hay algunas razones para describir por qué amo Python:

¡Es GRATIS!!

Personalmente no he oído una mejor razón para usar algo. Python es un lenguaje totalmente gratuito para
descargar, usar y jugar con, eso es porque un grupo de locos voluntarios dedican su tiempo a mejorar
el idioma (muy parecido a Wikipedia).
Licencia gratuita

Recursos de aprendizaje gratuitos

Grandes Comunidades

Repositorio gratuito(PyPi)

1.4.2 Fácil de aprender, Producción rápida, ¡Fácil mantenimiento!

El código de Python a menudo es de 3 a 5 veces más corto que el de Java y de 5 a 10 veces más corto que el de C++.

El código de Python es increíblemente legible y a menudo se asemeja al idioma inglés.

Es FÁCIL: ¡Hagamos una COMPARACIÓN!

A bucle for sobre una lista en Python:

items= [ 1, 2, 3, 4, 5]
para xen elementos :
imprimirx

Y lo mismo en Ruby:

items= [ 1, 2, 3, 4, 5]
artículos
. cadauno i|
pone i
fin

Otra comparación:
A bucle while en Python...

x = 1
mientrasx < 5:
print"El número es:" , x
x += 1
PARTE 1: Introducción a la programación en Python

Y el mismo código en php:

<?php
$x=1;
mientras($x<5)
{
echo"El número es:$x<br>";
x++;
}
?>

Me encanta la claridad sintáctica en Python. ¡Básicamente es pseudo código ejecutable!

1.4.3 En qué creemos


Todos deberían aprender a programar, porque la programación te enseña a pensar y luego te hace
¡Puedes mostrar a los demás cómo piensas!
Así que necesitamos un lenguaje que sea fácil de aprender para todos. Ahí es donde entra Python.

Python es fácil de aprender por tu cuenta. Bueno para el autoestudio.

¡Similar al idioma inglés! Esto facilita recordar comandos y también lo hace fácil.
para entender lo que estás haciendo.
¡Es tu piedra de toque hacia el mundo de la programación!

¡Los profesionales lo utilizan!

Mantenimiento fácil y producción rápida + licencia gratuita =


Idioma oficial en Google
YAHOO utilizó Python para Yahoo Respuestas y otros proyectos!

Disney
Nokia
IBM
Games (Civilization, Battelfield)
Genómica

¡Los niños pueden usarlo!


¡Los niños a partir de 9 años pueden utilizarlo! Cientos de escuelas en todo el mundo utilizan python para enseñar.
Programación para los niños.
PARTE 1: Introducción a la Programación en Python

1.4.6 Programación de hardware: ¡Hola Raspberry Pi!

Raspberry Pies un microordenador del tamaño de una tarjeta y de bajo costo que se está utilizando para una sorprendente variedad de emocionantes
cosas de hazlo tú mismo, como: robots, coches teledirigidos y consolas de videojuegos. Con Python como su
El lenguaje de programación principal, Raspberry Pi está siendo utilizado por niños para construir radios, cámaras, máquinas de arcade,
¡y alimentadores para mascotas!

1.4.7 Dinero Dinero Dinero


Empresas como Google, Yahoo!, Disney, Nokia e IBM utilizan Python. De hecho, entre los lenguajes de programación
idiomasPython tuvo el mayor crecimiento en la demanda de empleo año tras año— al 19%— a partir de marzo de 2013.
Notablemente, la demanda general de contratación de profesionales de TI disminuyó año tras año en un 5% a partir de enero.

2014excepto para los programadores de Python que aumentaron en un 8.7%.


En Nueva York, desarrolladores de Pythonclasificado #8 entre los trabajadores tecnológicos más demandados, ganando un promedio de

$106k por año.


Al otro lado del Atlántico, los programadores de Python también disfrutan de una creciente demanda por sus habilidades como se muestra

por el siguiente gráfico.

¡Está en línea!
El desarrollo web sigue siendo una perspectiva económica en auge para los programadores. Así que Python apoya fuertemente la web.
desarrollo a través de muchos marcos web diferentes como Django, CherryPy, Tornado, Flask,....
7PARTE 1: Introducción a la Programación en Python

Django—el popular marco de aplicación web de código abierto escrito en Python—es la base de
sitios como Pinterest, The New York Times, The Guardian, Bit Bucket e Instagram. Django es un
un marco completo que elimina la complejidad del desarrollo web, mientras te sigue dando control sobre
tanto como quieras. Como un marco de código abierto, toda la información que necesitas para comenzar puede ser
encontrado en [Link].

1.4.9 ¡El Padre de Python!


Python es un lenguaje de programación creado por Guido Van Rossum a principios de los 90. Ahora es uno de los
los idiomas más populares que existen.
8PART 1: Introduction to Python Programming

2 Fundamentos de la programación en Python


En el primer paso para aprender Python, hablemos sobre algunos temas fundamentales en la programación en Python:

Literals, Numbers, Operators, Strings, and Data Types.

2.1 Literales
Obtengamos la definición deWikipedia)
En ciencias de la computación, un literal es una notación para representar un valor fijo en el código fuente. Casi todos
los lenguajes de programación tienen notaciones para valores atómicos como enteros, números de punto flotante, y
cadenas, y generalmente para booleanos y caracteres; En contraste con los literales, las variables o constantes son
símbolos que pueden asumir uno de una clase de valores fijos, siendo la constante restringida a no cambiar.
En el siguiente código puedes ver ejemplos de diferentes tipos de literales en Python...

#Literal Entero
print42343

#Número entero largo

print2342342L

Punto flotante
imprimir343.3234

#Literal de cadena
print"Hola, esto es bueno"
Gracias

#Literal Binario
imprimir0b101 * 0b10

#Literal hexadecimal
imprimir0x100 0x2/

#Literal Octal
imprimir0400 02 /

Para imprimir el resultado de una expresión en Python, usamos unaprint()función. En el ejemplo anterior imprimimos
muchos valores numéricos diferentes. Al mismo tiempo, puedes ver algunas operaciones matemáticas simples.
PARTE 1: Introducción a la Programación en Python

¿Qué es #?

Lo que sea que escribas después # se llama un comentario y eso significa que nunca se ejecutará. Usamos
comentarios para agregar explicaciones a nuestro código, entonces podemos estar seguros de recordar lo que hemos hecho - o
permitir que otras personas entiendan nuestro código.

Delimitador de cadena

Sobre las cadenas, hablaremos más, pero por ahora, puedes usar comillas simples o dobles para cadenas.
delimitadores. Los siguientes literales de cadena son válidos:

Hola

2.2 Números
¡En Python tienes todo lo que hace una calculadora - y más! ¡Intentemos el siguiente código!

# Imprimir enteros básicos


imprimir5
imprimir5.5
imprimir 5
Combínalos con operadores matemáticos normales
imprimir1+ 1
imprimir8- 1
print10 *2
imprimir(- 4) + 4
Los números en lugares decimales funcionan muy bien
imprimir2.5 * 2
A veces los operadores son un poco diferentes, sin embargo.
2 elevado a la 4
imprimir2** 4
imprimir35 / 2
Calcule el residuo de 7 dividido por 3
¿Puedes explicar qué hace el operador '%'?
imprimir7 % 3

2.3 Operadores
¡Los operadores manipulan tus datos y generan nuevos datos! Cualquier lenguaje de programación, independientemente de su
la sintaxis, sigue operadores comunes como los operadores aritméticos, lógicos o booleanos. Familiarizémonos con
estos operadores.
PARTE 1: Introducción a la programación en Python

2.3.1 Operadores Aritméticos


imprimir5 + 5
imprimir5 * 5
imprimir5 - 5
División Entera
imprimir5 / 2
imprimir5 / 2.0
División Entera
imprimir5 // 2
imprimir5 //2.0
#Operador Módulo
imprimir7 % 2
imprimir2 ** 4

2.3.2 Operadores de Asignación

En Python, puedes declarar e inicializar una variable sin especificar ningún tipo de dato. Recuerda que Python
es un lenguaje dinámico. Hablaremos más sobre variables más tarde.

x = 4
print'x = 4' ,x
x += 4
imprimir'x += 4 =>' , x
x -= 4
print'x -= 4 =>' , x
x *= 4
imprimir 'x *= 4 =>' ,x
x /= 4
print 'x /= 4 =>' ,x
x %= 3
print'x %= 3 =>' ,x
x = 2
x **= 4
print'x **= 4 =>',x

2.3.3 Operadores Booleanos


En informática, una expresión booleana es una expresión en un lenguaje de programación que produce un
Valor booleano cuando se evalúa, es decir, ya seaVerdaderooFalso.

Una expresión booleana puede estar compuesta por una combinación de las constantes booleanasVerdaderooFalso ,
Variables de tipo booleano, operadores de valor booleano y funciones de valor booleano.

Veamos algunas expresiones booleanas:


11PARTE 1: Introducción a la Programación en Python

imprimir3 > 2
imprimir3 < 1
imprimir Verdadero

print False

2.3.4 Operadores de comparación

Operadores de comparación en Python:

imprimir5 == 5
imprimir5 != 5
print 5 <> 5
imprimir5 > 5
imprimir5 < 5
imprimir5 >= 5
print 5 <= 5

2.3.5 Operadores Lógicos


Usando algunos operadores lógicos, puedes crear expresiones Booleanas complejas:

imprimir4 > 3 y 2 > 1


imprimir3 < 2 y 6 > 3
imprimir3 != 2 or 3 > 9
imprimir no 4 == 4
print!= 4 4
no imprimir 5 > 2

2.3.6 Operadores a nivel de bit

En la programación de computadoras digitales, una operación a nivel de bits opera sobre uno o más patrones de bits o binarios.
números a nivel de sus bits individuales. Es una acción rápida y primitiva directamente soportada por el procesador,
y se utiliza para manipular valores para comparaciones y cálculos.

#Binario Y
imprimir '5 & 4 =' , 5 &4
#Binario O
imprimir '4 | 1 =' , 4 | 1
XOR binario
imprimir '5 ^ 3 =' ,5 ^ 3
#Complemento Binario
imprimir'~5 =',~ 5
Desplazamiento a la izquierda binario

imprimir '4 << 1 ='


, 4 << 1
#Desplazamiento a la derecha binario
12PARTE 1: Introducción a la Programación en Python

print'4 >> 1 =' , 4 >> 1

2.3.7 Verificador de Membresía e Identidad

¡Tenemos dos operadores útiles en Python que ahorran mucho dolor! Primero está elenverificador de membresía.
Toma un elemento y una colección, luego verifica si ese elemento existe dentro de la colección o no.

imprimir5 en[ 4, 5, 3, 4, 1]
¿Está el número 5 'EN' el siguiente arreglo, [4, 5, 3, 4, 1]?
imprimir5 no en[ 4, 5, 3, 4, 1]
imprimir 'y' en 'Este es un mensaje largo'

Otro operador útil eses¡Esto es más de bajo nivel! Acepta dos objetos (o variables) y luego evalúa
verdadero si las variables a ambos lados del operador apuntan al mismo objeto y falso en caso contrario.

x = 5
z = x
y = 4
imprimir 'x es y'
, x esy
imprimir 'x es z'
, x esz
imprimir 'x no es y'
, x no es y

2.3.8 ¡Precedencia de Operadores!

¿Quién es el primero!

¡Bien, terminemos los operadores con el concepto de precedencia!

1. **
2. + - (más y menos unario)
3. / % //
4. ~ + - (Adición , Sustracción
5. >> <<
6. &
7. ^|
8. <= < > >=
9. <> == !=
10. = %= /= //= -= += **=
11. is,is not
12. not,or,and

Objetos

Hasta este punto, has escuchado el término variables muchas veces. Sin embargo, sería más correcto decir que
¡refiérete a todo en Python como un objeto! Si estás familiarizado con la programación orientada a objetos, esto
no debería ser un problema para ti. Si no, revisa los siguientes ejemplos:
PARTE 1: Introducción a la programación en Python

Tenemos una variable de cadenamensajeque contiene un mensaje textual.

message ='This is a text'


Simensajees solo una variable de la que no esperas nada más que mantenga un valor.
Siempre que necesites ese valor, puedes referirte a este nombre de variable. Pero, ¿qué pasa si necesitas obtener el
VERSIÓN EN MAYÚSCULAS DEL CONTENIDO ENmensaje¿No sería genial si las variables pudieran hacer esto por nosotros? Bueno, lo
puede:

imprimirmensaje .upper()

Mira el operador de punto‘. Heusadodespuésmensajey [Link]ÚSCULAS()Estoy llamando a uno de los muchos


funcionalidades del objeto STRING (no variable) para convertirlo en mayúsculas.
Así que si tienes muchos objetos de cadena comomensaje, cada uno de ellos tiene su propia funcionalidad incorporada y
propiedades. ¡Por eso no lo llamamos una variable! ¡Todo en Python es un objeto! ¡Así que siempre espera algo!
funcionalidad adicional al usar [Link]és de una variable;Oh sorry, an object!

2.4 Cadenas
¡Has visto números y ejemplos simples del tipo de datos de cadena hasta ahora! Usamos cadenas para mostrar nuestro
secuencias. Las cadenas en Python son secuencias de caracteres. Creas un literal de cadena encerrándolo
personajes en solitario' , comillas"dobles o triples'''o""".

texto= La informática no trata más sobre computadoras de lo que la astronomía trata sobre estrellas.

sobre telescopios.
Dijkstra: ,

texto= La informática no es más sobre computadoras de lo que la astronomía lo es


sobre telescopios.
imprimir "Dijkstra:", texto

Las comillas triples tienen la ventaja añadida de permitir que nuestro código se extienda

varias líneas.
text = Proporcionar una mejor educación en ciencias de la computación en las escuelas públicas
a los niños, y alentar a las niñas a participar, es la única manera de
reescribir los estereotipos sobre la tecnología y realmente abrir el viejo mundo de los hombres

club.
print"Dijkstra:",texto

2.4.1 Indexación
Puedes acceder a partes de una cadena utilizando el operador de indexaciónyourString[i]La indexación comienza en cero,
asíyourString[0]devuelve el primer carácter de la cadena,yourString[1]devuelve el segundo, y así sucesivamente.

cartas = abcdefghijklmnñopqrstuvwxyz
14PARTE 1: Introducción a la Programación en Python

imprimir letras
[0 ]
imprimir letras
[1 ]
imprimir letras
[4 ]
imprimir letras
7 ]

2.4.2 Indexación Negativa


¡Es genial! ¡La indexación negativa es simple, encantadora y te ahorra mucho tiempo!

¡Así que inténtalo!

cartas = abcdefghijklmnopqrstuvwxyz
printletras[- 1]
printletters[- 2]
printletters[- 4]
imprimirletras[- 7]

2.4.3 Cortado
Los biólogos encuentran la funcionalidad de slicing en Python muy útil. Slicing te ofrece un enfoque simple.
devolver cualquier parte de una secuencia.

The general form of slicing is seq[inicio:fin:paso]


Intentemos...

cartas = 'abcdefghijklmnopqrstuvwxyz'
imprimir letras
#Imprimir secuencia desde la 5ª base hasta la 15ª
imprimir letras [5:15]
Imprimir secuencia desde el principio hasta la 15ª base
imprimirletras[:15 ]
Imprimir la secuencia desde el 5to hasta el final
imprimirletras:] [5
15PARTE 1: Introducción a la Programación en Python

Prueba de índices negativos

Todo es como un índice positivo excepto que la dirección es de derecha a izquierda. ¡Recuerda el!comenzarel valor debe
ser menos quedetener
.

cartas = abcdefghijklmnopqrstuvwxyz
imprimir letras
printletters[-15:-55 ] No funciona
imprimirletras[:- 5
printletters[-15:]

Paso

Intenta 'paso' para devolver los datos que necesitas.

cartas = abcdefghijklmnopqrstuvwxyz
imprimir letras
einn ni rE eu E e eee a E e t
printletters[:: 3]
printletters[:: 1]
imprimir letras [5:15:3]

¿Qué hay de los pasos negativos? Comoletters[::-1]¿Qué crees que sucederá?

cartas = abcdefghijklmnñopqrstuvwxyz
#Prueba esto letters[::-1]

2.4.4 Método de cadena

Hay muchas funciones útiles para cadenas que ya están diseñadas e integradas en Python. Normalmente
(no siempre) la forma en que podemos acceder a esas funciones es con el operador de punto:

<data>.<function name>
Vamos a familiarizarnos con algunas funciones de cadenas:

Ejemplo 1:

texto= La programación orientada a objetos es una idea excepcionalmente mala que


solo podría haber originado en California.
imprimirtexto . MAYÚSCULAS()
imprimirtexto . minúsculas()

Ejemplo 2:

#I like this next function it always comes in handy


16PARTE 1: Introducción a la programación en Python

[Link]()#Capitaliza la primera letra de la cadena

Ejemplo 3:

texto= La programación orientada a objetos es una idea excepcionalmente mala que


solo podría haber originado en California.
texto de printlen
( )
imprimir texto ("This")
. comienza con
imprimir texto . terminaCon"Esto")
(

Ejemplo 4:

Hay un buen contador para el tipo de dato de cadena y esto también funciona
con listas
texto de impresión . contar
( yo )
textoimpreso . count( es )
Puedes contar en una subcadena, por ejemplo, desde el índice 0 hasta el índice 5
contar"es". ( , 0, 5)

Ejemplo 5:

eliminar caracteres de relleno del INICIO y el FINAL de una cadena


imprimir"texto" . strip()
imprimir"texto+++"
. strip+"+"
(
Es posible que desees eliminar todos los espacios en blanco al principio y al final de la cadena

imprimir" texto strip() .


Puedes agregar otros caracteres para ser recortados
imprimir" texto +++||||"despojar"|+
. ( )

Ejemplo 6:

texto= La programación orientada a objetos es una idea excepcionalmente mala que


solo podría haber originado en California.
#verificar si una palabra específica existe en el texto o no
imprimir "es" en texto

Ejemplo 7:

#La función find determina si otra cadena ocurre en una cadena


devuelve el índice si se encuentra y -1 en caso contrario

imprimirtexto . encontrar
( es )
imprimirtxt . encontrar
( es , 5)
imprimir texto . encontrar
( isss )
17PARTE 1: Introducción a la Programación en Python

Ejemplo 8:

#Divide la cadena según el delimitador str (espacio si no se proporciona) y


devuelve una lista de subcadenas;
textoimpreso . split()#Dividir basado en espacios en blanco
texto de impresión . dividir
( ",")
imprimirtexto . dividir
( es )

2.4.5 Formateo de Cadenas


Cuando estás trabajando con cadenas, es posible que desees imprimir la misma cadena que solo difiere en uno o dos
lugares. Considera el siguiente ejemplo:
Tom compró Picca a las 8:10 PM

Jack compró un sándwich a las 9:10 PM

John compró agua a las 9:30 PM

Como puedes ver, hay partes comunes en cada oración:

{name} compró {food} a las {time}

Podemos crear una plantilla de cadena y formatearla con datos reales que provienen de una base de datos. Esto podría ahorrar
nos ahorra mucho tiempo y proporciona una mejor estructura para nuestro código. Veamos qué enfoques disponibles hay para hacerlo.
son.

¡Anticuado! Estilo C

Buenas noticias para los programadores en C, solo haz lo que has hecho conprintf .

Cero restante
print 'Ahora es %02d:%02d.' % (6, 30)

Número real (número después del punto decimal)


Imprimir 'Porcentaje: %.1f%%, Exponencial: %.2e' % (5.333, 0.00314

Octal y hexadecimal
Imprimir 'Decimal: %d, Octal: %o, Hexadecimal: %x' % (10 , 10, 10)

El operador % se utiliza para realizar interpolación de cadenas. La interpolación es más eficiente en el uso de memoria que
concatenación convencional.
18PARTE 1: Introducción a la Programación en Python

Símbolos utilizados para interpolación:

% S: cadena
% D: entero
% O: octal
% X: hexadecimal
% F: real
% E: exponencial real
%%: Signo de porcentaje

Los símbolos se pueden usar para mostrar números en varios formatos.

2.4.6 Enfoque Moderno


Desde la versión 2.6 de Python, hay una alternativa al uso del operador de interpolación %, este método es
llamado:formato().

Ejemplo:

db_factors= [('Pizza' , 08:10PM , ["Tom","Sándwich"] , '09:00PM',


Jack

# Los parámetros están definidos en orden


msg'{0}
= purchased by {1} at {2}'

por comida , buyer, timeindb_factors :


imprimir(msg. formato
( comprador
, de alimentos
, tiempo))

Los parámetros se definen por nombre


msg'{food}
= purchased by {buyer} at {hour:02d}:{minutes:02d}'

imprimirmensaje . formato
( comida
= Pizza , comprador
= Tom , hora= 8, minutes=10)

# Función incorporada format()


imprimir 'Pi =' , format( 3.14159, .3e

2.5 Tipo de Datos

Si alguna vez has utilizado C o C++, debes saber quétypeof()¡hace! Si no, recuerda que todo en un
¡Un lenguaje de programación tiene un tipo!

Primero déjame pedirle a mi querido amigo que explique el significado de tipo. Querido Sr..Wikipedia,por favor háganos saber

¿qué?tipoes:
19PARTE 1: Introducción a la Programación en Python

En ciencias de la computación y programación de computadoras, un tipo de dato, o simplemente tipo, es una clasificación para

identificar uno de varios tipos de datos, como real, entero o booleano, que determina lo posible
valores para ese tipo; las operaciones que se pueden realizar en los valores de ese tipo; el significado de los datos;
y la forma en que los valores de ese tipo pueden ser almacenados.

Esta descripción detipodepende en gran medida de la estructura física de la memoria asignada para ese tipo.
Por ejemplo, en la mayoría de los lenguajes de programación tenemos diferentes tipos de datos para valores enteros. Por ejemplo
en C, tenemosbytedonde solo se asignará 1 byte a una variable de ese tipo, así que 1 byte son 8 bits y nosotros
¡pueden presentarse 256 números diferentes! Mientras que para otro tipo de datoscortoSe asignarán 2 bytes, lo que significa
2 elevado a la potencia de 16 números diferentes.

¡Buenas noticias! Python es un lenguaje de tipado dinámico, lo que significa que detectará tus variables y expresiones.
data type in runtime. But many times you have to check the type by yourself before doing some relevant
operaciones. Esto se puede hacer con eltipooperador.

tipo de impresión ( 5)
tipografía ( 5.0)
tipo de impresión ( 5) ==int
tipo de impresión ( 5) ==float
tipografía ( ¡pero quiero ser un entero! )
tipo de impresión ( 5/ 2.0)

2.5.1 Libertad de Tipo


¡Todo tiene un tipo! No importa si estás en un lenguaje estático o dinámico. ¡Mientras seas un!
programador, ¡siempre debes hacer esta pregunta! Incluso cuando vas a una tienda y el dependiente dice,
Son $20

Python es un lenguaje dinámico y los tipos se declaran en tiempo de ejecución. ¿Cuáles son los tipos disponibles en
¿Python?

Todo se hace en tiempo de ejecución, pero hay varios tipos simples de datos predefinidos en Python, como:
Números (enteros, reales, complejos, ...)
Texto (o cadenas)
Además, hay otros tipos que actúan como colecciones. Los principales son:

Lista
Tupla

Diccionario
Conjunto
Tupla con nombre
PARTE 1: Introducción a la programación en Python

Diccionario Ordenado
Conjunto Congelado

Iremos a explicar algunos de ellos más tarde

¿Cómo maneja Python la declaración e inicialización de variables?

En Python, los nombres de las variables son referencias que se pueden cambiar en tiempo de ejecución. Los tipos más comunes y
las rutinas se implementan como integradas, lo que significa que siempre están disponibles en tiempo de ejecución sin necesidad de
importar cualquier biblioteca.

Por ejemplo:

x = 5

Después de esta línea, Python detecta el tipo de dato apropiado (que es entero) y también reserva una ubicación de memoria
donde se almacena el entero. También es importante recordar que una variable puede asignarse a cualquier tipo de datos
en tiempo de ejecución

x = 5
x = 3.4
x = Hola

2.5.2 Verificar tipo

En lenguajes dinámicos, necesitamos poder comprobar y verificar el tipo de dato de una variable. Esto se puede hacer mediante
usando eltipo()función

x = 5
tipodeimprenta ( x)
x = 5.4
tipo de impresión ( x)
x = hola
tipo de impresión ( x)
tipo de impresión ( 3* 3.0)
tipo de impresión ( 3* 3)

2.5.3 ¿Dónde se encuentra su ubicación?

Si has utilizado C, sabrás sobre cómo obtener la dirección de la memoria asignada a una variable creada. En
Python, para cualquier objeto creado, un entero únicoidse crea y eso sería una clave que mapea lo creado
objeto en su ubicación de memoria. En el manual de Python tenemos esta descripción:
21PARTE 1: Introducción a la Programación en Python

Elidentidadde un objeto. Este es un entero (o entero largo) que está garantizado que sea único y
constante para este objeto durante su vida útil. Dos objetos con vidas no superpuestas pueden tener el
mismoid()valor. (Nota de implementación: esta es la dirección del objeto.)
Intentémoslo.

x = 5
y = hola
imprimirid ( x)
imprimirid ( y)

2.5.4 Mutable vs. Inmutable


¡Recuerda que todo en Python es un objeto! En la programación orientada a objetos, también en Python,
los objetos pueden ser:

Mutable: permitir que el contenido de una variable cambie (piensa en mutación).

Inmutable: no permitir que el contenido de las variables cambie.


Por ejemplo, en Python una lista es mutable mientras que una cadena no lo es. ¡Vamos a crear un objeto de cadena y luego intentar probarlo!

cambia su carácter en la posición 2.

s = abcdefg
s[ 2] ='x'

Mira el mensaje de error,'str' no admite la asignación de elementos en la línea 2, este es el resultado de


¡ser inmutable! Pero, por supuesto, puedes cambiar el valor del objeto de cadena completo por uno nuevo, pero incluso en
en ese caso, el objeto viejo será eliminado (después de un tiempo) y se generará uno nuevo.

s = hola
imprimirid ( s)
s = adiós
imprimirID ( s)

Como puedes ver después de la segunda inicialización,


s no se refiere al primer objeto, su id ha cambiado así como
¡su ubicación dentro de la memoria!
Pero para las listas, que son objetos mutables, tienes esta capacidad de cambiar los datos en su lugar:

yo= [ 1,2,3
#verificar ID actual
imprimirid ( i)
Intenta cambiar en su lugar
yo
[ 0] = 7
#Sin error, ¿y ahora verificar si el ID es el mismo o no?
imprimir identificación
( i)
22PARTE 1: Introducción a la programación en Python

3 Estructura de datos en Python


En Python, hay cuatro tipos fundamentales de secuencias para contener colecciones de elementos.

Lista

Tupla
Diccionario
Establecer
Y también hay algunas colecciones más, pero son versiones más específicas de las cuatro anteriores:
Tupla Nombrada

Diccionario Ordenado
Conjunto Ordenado

Conjunto congelado

3.1 List
La primera colección es Lista. Las listas son colecciones de objetos heterogéneos, que pueden ser de cualquier tipo, incluyendo
otras listas.

Mutable

Las listas en Python son mutables y se pueden cambiar en cualquier momento.

Las cadenas son listas de caracteres inmutables

Las cadenas son simplemente una especie de lista de caracteres, pero inmutables. Así que cuando hablamos de listas, tenemos similitudes.
indexación, segmentación e incluso métodos y funciones similares.

3.1.1 Declaración de Lista


Puedes crear listas vacías así:

data= []

O con algunos datos primitivos:

data= [ 1,2,3,4,5]

Recuerda que puedes tener elementos de diferentes tipos de datos en una lista. Considera la siguiente lista:
23PARTE 1: Introducción a la Programación en Python

data= [ 1, 2, 3, 5.6, ¿Qué estoy haciendo aquí :(


]
Pruébalo ahora...

data= [ 1, 2, 3, 5.6, ¿Qué estoy haciendo aquí :(


]
imprimir datos

Puedes obtener la longitud de una lista utilizandolenfunción.

data= [ 1, 2, 3, 5.6, ¿Qué estoy haciendo aquí :( ]


printlen ) #Recordar: ¡Justo como una cadena!
( datos

3.1.2 Recorrer una lista

Si eres programador, deberías estar familiarizado con los bucles for, te permiten repetir un bloque de código.
y especialmente son buenos para atravesar dentro de una lista. Si no lo eres, solo ten paciencia, en los próximos capítulos
¡Vamos a hablar de ellos!
¡Recorrer es como leer!

colors= ['red' , verde , negro , marrón


para c en colores :
imprimirc

Mira la simplicidad de laparabucle. Con solo una variable de contenedor, comoc, iterará a través de la colección
y recoger elementos uno por uno y luego imprimirlos en la pantalla.

3.1.3 Rango()

Rango (inicio, parada, paso)

Esta es una función útil que genera secuencias numéricas.


Range acepta tres argumentos, luego genera una lista que contiene progresiones aritméticas.
Puedes usar range() de tres formas diferentes:
1. rango(parar)Con un argumento
Una secuencia de números desde 0 hastadetener(odetener-1) será generado:

De 0 a 10
mi_lista= rango(10)
imprimir_mi_lista

[Link](inicio, fin)Con dos argumentos


Una secuencia de números desdecomenzarhastadetenerse generará:
24PARTE 1: Introducción a la Programación en Python

Del 10 al 20
mi_lista= rango
( , 10
20)
imprimir_mi_lista

[Link](inicio, fin, paso)Con tres argumentos


Una secuencia de números desdecomenzarhastadetenery con elpasosentre cada número en la secuencia:

De 10 a 30, 2 a 2
my_list = rango(10 , 20, 2)
imprimir_mi_lista

Usamosrango()en muchas situaciones diferentes, especialmente conparabucles. Son muy útiles para crear
datos arbitrarios para jugar con listas!
Y también puedes usar rango para números negativos.

rango de impresión (0, -30, -10)

3.1.4 Acceso a Elementos


De la misma manera que se accede a los caracteres dentro de una cadena:

colors= ['red' , verde , azul , marrón


imprimircolores [ 0]
imprimircolores [ 3]
De manera similar, también tenemos índices negativos.
imprimircolores[- 1]

3.1.5 Cortar
De nuevo exactamente similar a lo que has visto para cadenas...

dígitos= rango(20)
imprimir'dígitos[5:10] ', dígitos
[ 5: 10]
imprimir'dígitos[5:] , dígitos[ 5:]
imprimir'dígitos[:15] ' , dígitos[:15 ]
imprimir 'dígitos[::2]' , dígitos[:: 2]
imprimir 'dígitos[::3]' , dígitos[:: 3]
print'dígitos[5:15:2]', dígitos[ 5: 15:2]
imprimir'dígitos[5::2] ', dígitos[ 5:: 2]

3.1.6 Modificar una lista

Puedes añadir, eliminar o reemplazar un elemento dentro de una lista...


25PARTE 1: Introducción a la Programación en Python

Para agregar un nuevo elemento al final de la lista, debes [Link](). Para eliminar, debes usar
[Link]()función. Para eliminar de una posición específica, [Link](indice) .
Inténtalo:

bases= ['A' , 'C', G , 'T']


printbases
bases. anexar( 'U')
imprimirbases
quitar
. bases ( 'U')
imprimirbases
bases . pop (1)
imprimirbases
(1 , 'C')
bases . insertar
printbases

3.1.7 Existencia
De manera similar, puedes usarenverificar la existencia de un elemento.

bases= ['A' , 'C', 'G', 'T'


print'U'inbases

3.1.8 Unir
.uniraccepts a list of items and a delimiter, then converts all items to a cadenay usar ese delimitador para
concatena los elementos.

bases= ['A' , 'C', 'G', 'T']


imprimir'+'unir
. (bases)
imprimir' o ' . unir(bases)
imprimir''unir
. ( bases)

3.1.9 Combinar Dos Listas

Puedes hacer diferentes enfoques. Primero usando +operador

list_1= [ 1, 2, 3, 4]
list_2= [ 5, 6, 7, 8]
list_1 += list_2
imprimirlista_1

O puedes optar por otra función [Link]()

list_1= [ 1,2,3,4]
26PARTE 1: Introducción a la Programación en Python

list_2= [ 5,6,7,8
ampliar (lista_2)
. list_1
printlista_1

3.1.10 Comprensión de listas


Si deseas hacer alguna modificación en todos los elementos dentro de una lista, o filtrar algunos elementos de una lista,
te encantará la comprensión de listas.

Ejemplo 1: Tenemos una lista de contenidos de GC calculados, pero queremos expresarlos todos como un
porcentaje (significado: cada elemento en la lista * 100)

pr_list= [0.4 , 0.5, 0.7, 0.6, 0.3]


imprimir_lista
print[pr * 100porprinpr_lista ]

¿Qué está sucediendo aquí?

Dentro de[pr*100porprenpr_list]tenemos una iteración simple a través de lapr_list. En esto


iteración,todosloselementosenlista_prde
izquierda a derecha, uno por uno se lee y se asigna a
elavariabletemporalpry luegopr*100se calcula lo que queríamos! Entonces será
inserted into a new list.
En general, una comprensión de lista es así...

[expresión para contenedor en lista]

Ejemplo 2: Tenemos una lista de temperaturas en Celsius y queremos convertirlas a Fahrenheit.

celsius= [39.2 , 36.5, 37.3, 37.8]


fahrenheit= [ ((9.0 / 5)* x + 32)por x incelsius ]
printfahrenheit

Example 3: We have some text and we want to split it into its words based on the whitespaces in
entre. Luego, para mejorarlo, queremos eliminar todos los caracteres falsos de cada palabra, y
quitar palabras que longitud menos 3.

= La programación es una de las ramas más difíciles de la aplicación


palabras
matemáticas; los matemáticos más pobres harían mejor en permanecer puros
matemáticos. . dividir
( ' ')
print 'Antes del Filtro:\n' , palabras
palabras= w[. strip' ( ;')por w en palabras si longitud ( w) > 3]
print 'Después del filtro: ' , palabras
27PARTE 1: Introducción a la Programación en Python

Como ves, podemos sazonar las comprensiones de listas consipara crear un filtro simple. En este caso, cadapalabracuál
está en una variable temporalw se mantendrá si su longitud es mayor a 3, y también cualquier espacio o carácter de
el principio o el final serán eliminados.

3.1.11 ¡Verificar existencia!

¡Hay dos maneras! Si quieres comprobar la existencia de un elemento en una lista:

progs= ['C' , Java , Básico , Ada , Ada , Pascal , 'COBOL',


'Pascal' , 'Haskell' , Pascal
print'Pascal'inprogs

Si quieres obtener el índice de la primera ocurrencia:

progs= ['C' , Java , Básico , Ada , Ada , Pascal , COBOL ,


'Pascal' , 'Haskell' , Pascal
printprogs .índice( 'Pascal')

¡Solo recuerda que si no existe, Python devolverá una excepción! ¡No hay -1! Para manejar esto, debes
¡ser capaz de manejar excepciones!

progs= ['C' , Java , Básico , Ada , Ada , Pascal , COBOL


Pascal , Haskell , Pascal ]
intentar:
.índice
index_value = programas ( Python )
exceptValueError :
index_value= - 1
imprimir_valor_indice

3.2 Tupla

3.2.1 Tuplas: Una Lista Inmutable


Similar a las listas normales, pero son inmutables: no puedes agregar, eliminar o hacer asignaciones a los elementos.

Sintaxis:

= tupla (a, b, ..., z)

Los paréntesis son opcionales. Pero, ¿cuáles son los beneficios de las tuplas sobre las listas? ¡Sigue leyendo y descúbrelo!

3.2.2 Declaración
¡De la misma manera que las listas, pero en lugar de corchetes cuadrados, debes usar paréntesis!
28PARTE 1: Introducción a la Programación en Python

location= (3.12345 , 101.23423


imprimir ubicación

Una tupla con dos elementos se llama tupla binaria


Una tupla con tres elementos llamada tupla ternaria
De la misma manera, una tupla con N elementos se llama tupla n-aria

Inmutable

Sí, las tuplas son inmutables y no puedes cambiarlas. ¡Similar a las cadenas!

3.2.3 Acceso a Elementos


¡Exactamente de la misma manera que las listas!

data_point= (34 , 45,12,'activado')


imprimir_punto_de_datos
[ 2]
imprimirpunto_de_datos
[ -1]

3.2.4 Cortando
Nuevamente similar a la lista...

data_point= (34 , 45,12,'activado')


imprimir_dato_punto
[ 0: 2]
imprimir_dato_punto
[ 1: 4]
printdata_point[:: 2]

3.2.5 Desempaquetar

El término desempaquetar tiene una larga historia en Python. Aquí significa desempaquetar los elementos de una tupla en diferentes

variables. Mira el siguiente ejemplo donde los tres elementos de una tupla se desempacan en tres variables.

punto= ( 3, 4, 5)
x, y, z = punto
imprimirx + y + z

A veces puedes omitir los paréntesis:

punto = 3, 4, 5
x, y, z = punto
imprimirx + y + z
29PARTE 1: Introducción a la programación en Python

Si te estás preguntando, ¿cuál es la verdadera aplicación de unpack?, debo decirte que confía en mí, necesitamos esto en
muchas aplicaciones diferentes y te las mostraré en un capítulo posterior.

3.2.6 Convertir a lista


Puedes convertir una tupla en una lista y viceversa.

punto= ( 1, 2, 3)
#Convertir tupla a lista
lista de = puntos
( )
tipo de impresión ( punto)

tipodeimprenta ( point_list)

data= [ 4, 5, 6]
#Convertir una lista en una tupla
tupla de = datos ( )
imprimir tipo( de datos_tupla
)

3.2.7 Lista de Tuplas


Una de las cosas interesantes sobre las tuplas es el desempaquetado y podemos usar esta habilidad dentro de una iteración.
Supongamos que tenemos una lista de tuplas sobre la información de algunos estudiantes. Y queremos recorrer dentro de eso.
arreglo y muestra el resultado. ¡Veamos cómo podemos hacer esto de una manera mala y luego de una manera pythonica buena!

db= [
( Tom , 23, matemáticas
( jack , 23, matemáticas
( juan , 26, ordenador )
]

forstudentindb :
imprimir 'Nombre:' [ 0],'Age:'
, estudiante [ 1],'Course:' , estudiante[2]
, estudiante

En este tipo de recorrido accedemos a cada elemento del arreglo uno por uno, incluyendo el nombre, edad,
¡Y por supuesto, refiriéndonos a su índice! Pero esto no es pythonic, ¡hagámoslo de nuevo!

db= [
( tom , 23, 'matemáticas') ,
( jack , 23, 'matemáticas') ,
( juan , 26, computadora )
]
nombre , edad, courseindb :
imprimir 'Nombre:'
, name, 'Age:', edad
, 'Course:', curso
30PARTE 1: Introducción a la Programación en Python

3.2.8 Beneficios
¡Todo tiene sus pros y sus contras! Las tuplas son significativamente más rápidas que las listas en

Construcción

Acceso a Elementos
La inmutabilidad normalmente trae estas ventajas, pero perderás el beneficio de ser mutable.
Por lo tanto, depende de tu problema, si no te importa la mutabilidad, ¡entonces no uses una lista! ¡Ve por
¡tuplas!

3.3 Diccionario
Los diccionarios son una colección de elementos en forma de un par (clave, valor), lo que significa que cada elemento está identificado.
por una clave, así que de alguna manera es una tabla hash en la que se asigna una clave única a cada elemento.

Las listas son conjuntos ordenados de objetos, mientras que los diccionarios son conjuntos desordenados. Pero la principal diferencia es que
Los elementos en un diccionario se acceden a través de claves y no a través de su posición.

Ejemplo:

student_record_list= ['Tom' , 23, Licenciatura


, Italia , 'Java']

¿Qué puedes decir sobre estos cinco valores? Por ejemplo, si el idioma de interés de Tom es Java, o Java es el
¿idioma que no le gusta? O Si quieres tener su país, siempre debes recordar que su posición
es 3 (estudiante_registro_lista[3])!! ¿Qué pasa si hay más campos? ¡Pero ahora mira esto!

student_record_dict= {
'name'Tom
'age' : '23' ,
'academic_level': Licenciatura
, en Ciencias
'country' : 'Italy' ,
'programming_language': Java
}

¡Ahoraesmásclaroeinteligible!Sinecesitassabersupaís,solopreguntapor
student_record_dict['country']¡Y este es el propósito y el beneficio de los diccionarios!

3.3.1 Declaración
Hay varios enfoques para crear un diccionario. Aquí hay algunos de ellos:
31PARTE 1: Introducción a la programación en Python

Diccionario vacío

country_codes= {}
#o
country_codes = dict()
imprimir_códigos_pais
printtype(códigos_de_país)

Inicialización directa

country_codes= {'Malaysia' : 'MS', China : ZH , Irán : IR


'America' : 'US' }
imprimir códigos de países

Una lista de tuplas binarias

country_codes = dict([
( Malasia , MS
( China , 'ZH'
( Irán , IR
( América , US
imprimir_códigos_de_país

3.3.2 Acceso a Elementos


Como se mencionó anteriormente, el acceso a los elementos de un diccionario no se realiza haciendo referencia a un número de índice. Podemos

utiliza claves asignadas para recuperar un valor de un diccionario.

country_codes= {'Malaysia' : MS , China : ZH , Irán : IR ,


'America' : 'US' }
imprimir_códigos_de_país
[ Malasia

¡Cuidado con las llaves que no existen!

In this case you will face with aKeyErrorexception!

country_codes= {'Malaysia' : 'MS' China : ZH , Irán : 'IR',


{"America":"América","US":"EE.
: } UU."}

imprimircódigos_de_país
Alemania

¿Cómo puedo verificar si una clave existe o no?

Exactamente como listas o cualquier otro tipo de secuencia.

country_codes= {'Malaysia':'MS', China : ZH , Irán : IR ,


32PARTE 1: Introducción a la Programación en Python

'America':'US'}
imprimir 'Malasia' en códigos de países

Una mejor manera de recuperar un valor es mediante el uso [Link]()

Puedes leer un valor de diccionario [Link](clave, predeterminado)función, que primero verifica las claves
la existencia, si existe, será devuelta, ¡de lo contrario devuelve el valor predeterminado!

country_codes= {'Malaysia' : MS , China : ZH , Irán : IR ,


'America' : 'US' }
imprimir_códigos_de_país Alemania , Sin datos )
.obtener

3.3.3 Claves y Valores!


¡Puedes descomponer un diccionario en una lista de claves y valores!

Claves:.keys()

country_codes= {'Malaysia' : MS , China : ZH , Irán : IR ,


{"America":"América","US":"[Link]."}
: }
imprimir_codigos_de_paises
.keys()

Values : .valores()

country_codes= {'Malaysia' : MS , China : ZH , Irán : IR ,


'America' : 'US' }
imprimir_códigos_de_país
.valores()

Lista de pares de tuplas binarias (clave, valor)

También puedes crear una lista de tuplas binarias con:.items()

country_codes= {'Malaysia' : MS , China : ZH , Irán : IR ,


'America' : 'US' }
printcountry_codes . elementos()

3.3.4 Recorrido de Diccionarios


Al igual que la traversía de listas, puedes recorrer un diccionario utilizando unparabucle..items()devuelve una lista
de tuplas binarias que contienen pares clave-valor de diccionario.

Intentemos:

country_codes= {'Malaysia' : MS , China : ZH , Irán : IR


'America' : 'US' }
33PARTE 1: Introducción a la Programación en Python

forname , codeincountry_codes.items():
printname , '=>', código

3.3.5 ¡Tuplas como claves!

Los valores de un diccionario pueden ser de cualquier tipo de dato. Pero las claves deben ser inmutables.!

Por ejemplo, no puedes usar una lista como clave. Pero, ¿y si necesitamos hacer esto?! Por ejemplo, queremos usar 2D
coordinates of several points on a map as a dictionary key and then some data for that point!
Gracias a las tuplas, podemos usar una tupla en lugar de listas.

Ahora imagina que tenemos una base de datos GEO, veamos qué sucederá:

geo_db= {(3.123345 , 101.1233321) :"Brown City" ,


( 2.123345, ¡En algún lugar en el corazón del océano! ,
( 6.666666, Triángulo de las Bermudas }
printgeo_db . {"keys()":"claves()"}

¡Intentemos usar una lista como clave!

3.3.6 Diccionario Anidado


El diccionario es el mejor enfoque para describir un objeto del mundo real en una computadora. Por ejemplo, si estás hablando
acerca de un libro, puede que uses el siguiente diccionario para describir ese libro.

book= {
'title'Aprender Python
'year'2014
: ,
autor : 'tom'
precio : 100.00
}

¡Ahora tenemos un diccionario de libros que contiene información relevante para ese libro!

¿Qué pasa si este libro tiene una lista de autores?

book= {
'title': Aprender Python,
'year'2014
: ,
'author':['tom', jack , john
'price'100.00
:
}

De hecho, un diccionario puede contener cualquier cosa, ¡como una lista! Otra cosa es que un diccionario puede contener cualquier cosa.
de lo contrario, un diccionario puede contener otro diccionario para hacer una estructura más compleja.
34PARTE 1: Introducción a la Programación en Python

book= {
'title': Aprender Python,
'year'2014
: ,
'author':['tom', jack , john
'address':{
'city':'KL',
calle : JS23/34.5 ,
postal 55100
},
'price':100.00
}

¿Cómo podemos tener acceso a los elementos?

Simplemente sigue lo que has aprendido hasta ahora. Recuerda que puedes acceder a cada elemento por su clave.
Ahora, si el valor es un diccionario por sí mismo, puedes seguir teniendo acceso a elementos anidados con sus nuevos
llaves también.
Considere el siguiente acceso.

book= {
'title': Aprender Python,
'year'2014
: ,
'author':['tom', jack , john
'address':{
ciudad: KL ,
calle : JS23/34.5 ,
código postal: 55100
},
'price': 100.00
}

#acceso simple
printbook'title'[ ]

#acceso a la lista
libro impreso [ autor ]
libro impreso [ 'author'][2

#acceso a lista anidada


libro impreso [ 'address']['city']
libro impreso [ 'address']['postcode']

Así como podemos acceder a la ciudad a través de laimprimir libro['dirección']['ciudad']clave.


35PARTE 1: Introducción a la programación en Python

Ahora es posible tener una lista de este tipo de diccionario de libros, y eso sería un tipo no-relacional.
base de datos. Algunos libros tienen dirección, algunos no. Algunos libros tienen algunas nuevas no previstas.
¡campos! Pero no tendremos ninguna preocupación. Hablaremos sobre bases de datos no relacionales o no SQL más tarde.

3.3.7 Modificando Diccionarios

Eliminar un elemento

Puedes eliminar un valor de un diccionario haciendo referencia a su clave. Simplemente usa eldeloperador con una clave relevante,
entonces ese elemento será eliminado.

country_codes= {'Malaysia' : MS , China : ZH , Irán : IR


{"America":"América","US":"[Link]."}
: }
imprimir_códigos_de_país [ Malasia
delcountry_codes'Malaysia'
[ ]
printcountry_codes .get'Malaysia'( , No encontrado

Fusionar dos diccionarios

Puedes combinar dos diccionarios llamando a [Link]()función. Se agregarán nuevas claves a la actual
diccionario y para aquellas claves que ya existen, sus valores serán actualizados.

# Lamentablemente una vez más Trinket nos falla. Debes ejecutar este código en tu
propio IDE/línea de comandos
order= {
'id': A123 ,
C#
artículo ,
'item_type': libro ,
'qty': 1,
estado : en_proceso
}
orden de impresión

order. update({
estado : comprado ,
precio : 200,00
})

orden de impresión
36PARTE 1: Introducción a la programación en Python

3.4 Conjunto

Los conjuntos son como lo que has visto en la escuela secundaria: ¡Teoría de Conjuntos! Los conjuntos son una colección de elementos, sin ningún

¡duplicación y sin orden entre elementos! Y en Python, los conjuntos son unívocos mutables (sin
colección no ordenada de repeticiones!

s = conjunto([
3, 4, 4, 5, 6])
s
imprimir

3.4.1 Declaración
Hay diferentes enfoques para crear conjuntos...

Conjunto Vacío

s = conjunto()
imprimirs
longitud de impresión
( s)
tipografía ( s)

Inicialización Directa

s = conjunto([
1, 2, 3, 4, 5, 4, 4, 6,7]
s
imprimir

Crear desde una lista o tupla

data= [ 1, 2, 3, 3, Hola
t = ( 1, 2, 3, 3, Hola
conjunto de impresión
( data)
conjunto de impresión
( t)

3.4.2 Acceso a Elementos

¡Cuando hablamos de conjuntos no hay indexación! Esto significa que no puedes acceder a los elementos del conjunto por su
position. There is no order in a math set!

s = conjunto([
1,2,3,4,5])
imprimir[3]
s

¡Sin embargo, hay un truco! Primero convierte tu conjunto a lista sobre la marcha, ¡luego intenta acceder a esa posición!

s = conjunto([ 1,2,3,4,5]
imprimir lista ( s)[3]
37PARTE 1: Introducción a la Programación en Python

3.4.3 Agregar un nuevo elemento

Para añadir un nuevo elemento a un conjunto, puedes usar uno de dos enfoques. Uno de ellos es [Link]()función de
el conjunto.

s = conjunto([
1,2,3,4]
(5)
s. agregar
imprimirs

Y el otro está usandouniónlo cual es exactamente lo mismo que has visto en matemáticas. Pero hablemos de
eso después.

3.4.4 Operaciones de Conjuntos

Como dijimos antes, en Python, el conjunto te proporciona la teoría de conjuntos! Esto significa que tenemos unión, intersección, y

other famous set theory [Link]’shave a try.

¡Imagina que tenemos tres conjuntos de datos de decenas de personas! ¡Esos han sido registrados!
para el taller de INTRO, el taller de WEB y el taller de DB. Ahora vamos a tener algunos
informes de interés.

introducción
= conjunto(["Tom"
, Jake , Juan , Eric
web = conjunto(["Tom",
, "Jake"])
, Jill Mac
db = set(["William",
, "Andy"])

Unión de dos conjuntos: Encontrar todas las personas que se han registrado para un taller

imprimir'intro | web = ' . unión(web)


, introducción
print'intro | web = ' , introducción
| web

Intersección de dos conjuntos: Las personas se han registrado para ambos


imprimir'introducción y web = ' , intro. intersección(web)
imprimir'intro & web = ' , introducción
& web

Intersección de dos conjuntos: Las personas se han registrado tanto para introducción como para base de datos

imprimir'intro & db = ' . intersección(db)


, introducción
print'intro & db = ' , intro & db

Diferencia de dos conjuntos: Las personas se han registrado para Intro pero no para
Web
print'intro - web = ' . diferencia(web)
, introducción
imprimir'intro - web = ' , introducción
- web

#Diferencia simétrica entre dos conjuntos: Personas que asisten solo a uno
de los talleres
imprimir 'intro ^ web = ' , intro.symmetric_difference(web)
38PARTE 1: Introducción a la Programación en Python

imprimir'intro ^ web = ' , introducción


^ web

#Verificar si son disjuntos o superconjuntos

siintro .esdisjunto (db):


Nadie se registró tanto para la introducción como para la base de datos
ifdb . introducción
( a isubset
print"Todos los registrantes de la base de datos ya están registrados para Intro"
si intro es. un superconjunto
( db):
Todos los registrados en la base de datos ya están registrados para la introducción

3.4.5 Modificación de un conjunto

Eliminar un elemento

s1 = conjunto([
1, 2,3,4,5,6]
imprime1
(6 )
s1. eliminar
impresiones1

Si el elemento dado no existe, verás un error. Pero hay otro método..discard() eso
se elimina solo en caso de existencia, y no se generará ningún error.

1, 2, 3, 4, 5,6])
s1 = conjunto([
impresiones1

s1. descartar
( 6)
impresiones1

s1. descartar
( 6)
prints1

Recuerda que unconjuntoes mutable, por eso cuando llamas [Link](), ¡cambiará su propio objeto!

Borrar un conjunto

1, 2, 3, 4, 5,6])
s1 = conjunto([
prints1
s1. limpiar()
imprime1

Hacer un clon

s1 = set([1, 2, 3, 4, 5,6])
s1_clone = [Link]()
s1_clone. borrar()
imprime1
39PARTE 1: Introducción a la programación en Python

4 Diseño de Programas en Python

4.1 Estructura de Decisión

4.1.1 Estructura If-Else


Por defecto, Python comienza a interpretar y ejecutar tu programa línea por línea de manera secuencial.
1, luego 2, 3 y ... ¡Pero puedes cambiar este flujo creando una rama basada en una condición! ¡Esto es posible!
a través desi-sino estructura. Es muy común que un programa tenga ciertos conjuntos de instrucciones que sean
ejecutado condicionalmente, como validar entradas de datos, por ejemplo.
Sintaxis:

si<condición>:
< bloque de código
>
elif <condición>:
< bloque de código
>
elif<condición>:
< bloque de código
>
de lo contrario:
< bloque de código
>

En el que:
<condición>oración que se puede evaluar comoVerdaderooFalso.

<bloque de código>Líneas de código que se deben ejecutar.

Las cláusulaselifysinoson opcionales. Pueden haber varioselifsporsipero solo unoelseen


el fin.
Los paréntesis solo son necesarios para evitar ambigüedad.

4.1.2 ¡SANGRÍA!
Mira la estructura if-else anterior. En C, los bloques se definen por las llaves que los rodean { y }.
el nivel de sangría (espacios en blanco) antes de las declaraciones de código no importa (completamente opcional).
En Python, la región de un bloque de código se define por la indentación (generalmente una tabulación o cuatro espacios en blanco). Esto
significa que tenemos que tener cuidado de indentar nuestro código correctamente, de lo contrario obtendremos errores de sintaxis.

declaración1
= statement2=True

ifstatement1 :
declaraciónif2
:
print("tanto la declaración1 como la declaración2
) son verdaderas")
40PARTE 1: Introducción a la Programación en Python

Un mal ejemplo de sangrado

# ¡Mala indentación!
declaración si :1
declaración si :2
imprimir("tanto statement1 como statement2 son )Verdaderos")
# esta línea no es
adecuadamente sangrado

No te equivoques. En el siguiente ejemplo, ambas impresiones pertenecen al mismo bloque.

statement1=False

ifstatement1 :
imprimir("impreso si la declaración 1) es Verdadera")

print("todavía dentro del bloque )if")

Si quieres la segunda declaración de impresión fuera del bloque:

declaraciónSi1
:
print("impreso si la declaración 1 es) Verdadera")

imprimir("ahora fuera del bloque) if"


#Eliminar/reducir la sangría

De acuerdo, volvamos a nuestrosi-nocon algunos ejemplos:

peso = 85.0#escribe tu propio peso, vamos a ver cómo estamos en forma


eres, no seas tímido ;)
height1.83
=
índice= de masa corporal = peso / (altura) **2# fórmula de su índice de masa corporal

imprimir 'Tu IMC es , ' bmi

ifbmi < 18.5:


Bajo peso
elif 18.5 <= bmi <= 25 :
imprimir 'Normal'
elif 25 <= bmi <= 30 :
Sobrepeso
elif30<=bmi<=35 :
Obesidad moderada
sino:
Obeso severo

Hay un punto importante aquí:


Las condiciones encadenadas son posibles en Python. En lugar deimc >= 25 y imc <= 30puedes simplemente escribir25
<= imc <= 30¡Está genial!
41PARTE 1: Introducción a la Programación en Python

Si el bloque de código está compuesto por una sola línea, se puede escribir después de los dos puntos:

si 18.5 <= bmi <= 25: imprimir 'Normal'

4.1.3 IF en línea
A partir de la versión 2.5, Python admite la expresión:

<variable> = <valor 1> si <condición> sino <valor 2>

En cuál<variable>recibe<valor 1>si<condición>es verdad y<valor 2>de lo contrario. Vamos a tener


un ejemplo. Vamos a obtener un número del usuario y luego imprimir PAR o IMPAR dependiendo del dado
número.
¡Escribamos un programa estúpido! Obtén un número del usuario, luego verifica si es impar o par, y muestra un
¡mensaje!

¿Cómo puedo obtener un valor del usuario?

Hasta ahora hemos asignado variables nosotros mismos, pero en un modelo más realista tenemos que leer un valor de
usuario y eso se puede hacer utilizandoentrada(mensaje)función. La entrada primero imprime elmensajey espera por
el usuario debe ingresar un valor y presionar el botón de enter, entonces ese valor será devuelto. Exactamente comocinen C o
[Link]()en C#.

num = entrada ( ¿Por favor, ingrese un número?


)
Imprimir "Tu número es:" , num
imprimirnúmero==% 2 0
imprimir "PAR" si num % 2 == 0 ODD

Mira la última lí[Link] num % 2 == 0entonces imprimimos "Par", de lo contrariomásRaro.

4.1.4 Repetición y Bucles

Bucle de contador con rango

Los bucles son estructuras repetitivas, generalmente se utilizan para analizar colecciones de datos, como líneas de un archivo o
registros de una base de datos.

Un tipo de bucle es el bucle contador, que es un tipo simple de bucle que se repetirá un número fijo de veces.
veces. Este bucle llamado unparabucle.
Un contadorparaun bucle en el lenguaje C se ve así...

por(int i = 0; yo< 10; i++){


//Tu código...
42PARTE 1: Introducción a la programación en Python

La versión Pythonica para estoporel bucle se puede lograr utilizando elrango()función. Recuerda
esorango(inicio, fin, paso)genera una secuencia de números enteros, y puedes usarla como contador
para tu bucle.

para yodentro del rango (10):


imprimir'i : , yo
-----------
para yoen rango ( 10, 20, 2):
imprimir 'i :' , yo

4.1.5 Traverse Collections


En esta versión, tenemos una secuencia o colección de elementos, y vamos a iterar a través de la secuencia.
and play with all of the items one by one. Let's see an example...

texto= El uso de COBOL paraliza la mente; su enseñanza debería,


por lo tanto, se considerará un delito.
words= []# [[Link](' .') for w in [Link](' ')]
avance en el texto . dividir( ' '):
palabras . añadir
( palabra
. strip(' .').lower())
imprimirpalabras

Así que mira estopara palabra en [Link](' '):Primero,[Link](' ')devuelve una lista de palabras que
se generan al dividir el texto en función de los espacios en blanco. Luego, nuestro bucle comienza a iterar a través de esta lista
y recoger esas palabras una por una, y devolvértelas dentro de losword .
Si estás familiarizado conpara cada unoen C# o Java, puede que lo encuentres similar.

De hecho, siempre que no te importa la posición de un elemento dentro de una colección, no hay necesidad.
para usar un bucle contador:

texto= El uso de COBOL paraliza la mente; su enseñanza debería,


por lo tanto, se considerará un delito.
tokens =texto . dividido
( ) ' '
words= []
para yoen rango ( len( tokens)):
palabras (tokens[i ] .strip(' .').lower())
. agregar
imprimir palabras

¡Pero esto no tiene ningún sentido!


43PARTE 1: Introducción a la Programación en Python

Let me add something else, rememberList Comprehension, and how beautiful they are. Most of the time
Siempre que no quieras hacer muchas cosas dentro de tu bucle, puedes usar comprensión de listas. Vamos a
reescriba nuestro ejemplo utilizando comprensión de listas.

texto= El uso de COBOL paraliza la mente; su enseñanza debería,


por lo tanto, se considera un delito.
( ' .').lower()for w [Link](' ')
words= [ w. despojar
imprimirpalabras

Iterar un rango

para yodentro del rango(- 3, 3):


imprimiryo

Iterar una colección:

para w en["Python" , es , "awesome"]:


imprimirw

Iterar una colección con indexación

paraidx , w inenumerar(["Python" , es , "awesome"]):


printidx , ': ', w

Iterar una tupla

por x en( 1, 2, 3, 4, Hola, 4.5):


imprimirx

Iterar un diccionario

country_codes= {'Malaysia' : MS , China : ZH , Irán : IR


{"America":"América","US":"EE.
: } UU."}

valor de la clave
, en códigos de país .items():
printkey' : ' value
, ,

4.1.6 Bucle Condicional


mientrassimplemente ejecuta un bloque de código hasta que se cumpla una condición dada. Elmientrasel bucle es apropiado cuando
no hay forma de determinar cuántas iteraciones ocurrirán o necesitarán ocurrir.

Sintaxis:

mientras<condición>:
< bloque de código
44PARTE 1: Introducción a la programación en Python

Llevar
romper
de lo contrario:
< block of code>

El bloque de código dentro delmientrasel bucle se repite mientras la condición del bucle se evalúe como verdadera.

Ejemplo

n = input("¿Cuál es el límite superior de tu secuencia de Fibonacci? ")


a = 0
b = 1
imprimira
mientrasb < n:
imprimirb
t = b
b = a + b
a = t

¡Puedes hacer que este código sea más pythonic, piénsalo!

4.1.7 Romper y Continuar


Puedes controlar la iteración de unparabucle. ¡Puedes detenerlo o saltar al siguiente ciclo! Esto se puede hacer
con elromperycontinuarcomandos.
Veamos un ejemplo.

para yoen rango 10


si yo% 2 == 0:
continuar
elif yo== 8:
romper
else:
imprimiryo

Como ves, cada vez que tenemos números pares, saltamos al siguiente ciclo, y cuando alcanzamos 8, nosotros
conocerromperlo que detiene todo el lazo.

4.2 Funciones
Utilizamos funciones para tener modularidad. Esto significa que colocamos nuestro valioso código en estas cajas para reutilizarlas.
¡una y otra vez! De esta manera, traeremos una especie de bloque de construcción lógica a nuestra aplicación.
Una función es un bloque de código organizado y reutilizable que se utiliza para realizar una acción única y relacionada. Las funciones
proporcionar una mejor modularidad para su aplicación y un alto grado de reutilización del código.
45PARTE 1: Introducción a la programación en Python

Como ya sabes, Python te ofrece muchas funciones incorporadas como imprimir(), etc. pero también puedes crear
tus propias funciones. Estas funciones se llaman funciones definidas por el usuario.

4.2.1 Declare It!


Una función en Python se define utilizando la palabra clavedefinición, seguido de una funciónnombre, una firma dentro de
paréntesis(), y dos puntos:. El siguiente código, con un nivel adicional de sangría, es la función
cuerpo.
Veamos un ejemplo...

círculo ( radio):
radio= del área
2 * 3.14
área de retorno

imprimir círculo (10)


a = círculo ( 5)
imprimir 'Área' , a

4.2.2 Llamada con Argumento de Palabra Clave

Otra forma de llamar a funciones es con argumentos por palabra clave

defmax ( x, y):
m = x si x >= y sino y
regresar m

imprimirmax ( 10, 5)
imprimirmax ( y= 10, x=5)

Los argumentos de palabras clave pueden llegar en cualquier orden.

Verás el principal beneficio de los argumentos de palabra clave en la próxima sección.

4.2.3 Cadena de documentación

Las Doc Strings son cadenas que se adjuntan a funciones en Python. En las funciones, las Doc Strings se colocan dentro de
el cuerpo de la función, generalmente al principio.
El objetivo de las cadenas de documentación es servir como documentación para esa estructura. Las cadenas de documentación son útiles en

diferentes maneras. Siempre que quieras recordar cómo la función realiza su trabajo y qué parámetros de entrada
nos toma el uso deayuda(nombre de la función)llamar.

defcirculo(radio):
"""
Calcula el área del círculo para el radio dado
46PARTE 1: Introducción a la Programación en Python

"""
área = 3.14 * radio 2
área de retorno
ayuda
( círculo
)

4.2.4 Argumentos por Defecto

En la definición de una función, podemos dar valores predeterminados a los argumentos que toma la función:

defcirculo ( radio , pi = 3.14):


"""
Calcula el área del círculo para el radio dado
"""
área = pi * radio 2

returnarea
Ahora puedes llamarcírculosin pasar nada por elpientonces se seleccionará el valor predeterminado,
o puedes pasar un nuevo valor y sobrescribir la versión predeterminada.

defcirculo ( radio , pi = 3.14):


"""
Calcula el área del círculo para el radio dado
"""
área = pi * radio 2
área de retorno

imprimircírculo ( 10)
imprimircirculo ( 10, 2.6)

Si intentas llamar al argumento con estilo de palabra clave, entonces el orden no


materia
imprimircírculo ( pi = 2.6, radio = 10)

Este es un gran error circle(pi = 2.5, 10), trata de evitar esto.

4.2.5 Múltiples Parámetros


Puedes definir funciones que acepten un número variable de argumentos posicionales.

defpromedio(*args):
imprimir 'Argumentos:', args
retorno suma ( args)/float( len(args))

imprimirpromedio ( 3, 4, 5 )
imprimirpromedio ( 3, 4, 5 , 2, 3)
47PARTE 1: Introducción a la Programación en Python

Puedes definir funciones que acepten un número variable de argumentos con nombre, así como

defcrear_libro(**kwargs):
print 'Argumentos:', kwargs
#Conectar base de datos y agregar libro especificado
El nuevo libro está guardado

crear_libro( isdn= 123 , title= C# , autor = tom )


crear_libro( isdn= 124 , title= Java , autor = tom , year=2005)

4.2.6 Salida Múltiple


En Python, una función puede devolver más de un valor.
Tenemos dos funciones, la primera calcula el área y la segunda la circunferencia.

defarea_circulo( r):
devolver r 2 3.14

defcircuferencia_circulo(r):
return3.14r * 2 *

Ahora envolvamos ambas operaciones en una sola función.

defcirculo (r):
área = r ** 2 * 3.14
cir = r * 2 * 3.14
área de retorno , cir

a, c = círculo ( 10)
imprimir 'Área:' , a, ', Circumference:' , c

4.2.7 Función Anónima


En Python también podemos crear funciones anónimas o sin nombre, usando la palabra clave lambda:

f1=lambda x: x**2

# es equivalente a

deff2 (x):
devolver x**2

printf1 ( 5)
printf2 ( 5)
48PARTE 1: Introducción a la Programación en Python

Las funciones anónimas (de primer clase) son un bloque fundamental para la programación funcional, y las cubriremos.
en el siguiente capítulo.

Tengamos otro ejemplo.

agregar=lambda x, y: x + y
agregar5 ( 6)

Está bien, y tengamos otro ejemplo sucio. Puedes crear una función anónima y ejecutarla sin
asignándolo a una variable.

imprimir(lambda x, y: x + y)( 4, 5)

4.3 Programación funcional

4.3.1 Función de Alto Orden


En informática, la programación funcional es un paradigma de programación, un estilo de construir la estructura
y elementos de programas informáticos que tratan la computación como la evaluación de funciones matemáticas
y evita el estado y los datos mutables .
La programación funcional enfatiza funciones que producen resultados que dependen solo de sus entradas y
no en el estado del programaes decirfunciones matemáticas puras .
It is adeclarative programming paradigm, which means programming is done with expressions.

En el código funcional, el valor de salida de una función depende únicamente de los argumentos que se le proporcionan.
función, así que llamar a una función
f dos veces con el mismo valor para un argumento
x producirá el mismo resultado
f(x)ambas veces.
Eliminar efectos secundarios, es decir, cambios en el estado que no dependen de las entradas de la función, puede hacerlo mucho
más fácil de entender y predecir el comportamiento de un programa, que es una de las motivaciones clave para el
desarrollo de la programación funcional.
Una de las cosas más importantes en la programación funcional son las funciones de orden superior. Una función de orden superior

es una función que puede aceptar otra función como entrada o devolver una función como salida!
Veamos un ejemplo. Queremos calcular el cuadrado de todos los números desde 0 hasta 10. Podemos hacer esto por
usandoparabucles, pero en el estilo de programación funcional usamosmapafunción:

imprimir mapa (lambda x: x ** 2, rango( 0, 10))

Otro ejemplo, de un rango de números queremos mantener solo los números pares, nuevamente podemos hacer esto.
conporbucle ysipero en programación funcional tenemosfiltro :
49PART 1: Introducción a la programación en Python

printfilter(lambda x: x % 2 == 0, rango(1 , 10))

Podemos rehacer ambos ejemplos, también con comprensión de listas.

imprimir[ x ** 2 para x dentro del rango


( 1, 10)]

print[ x para x dentro del rango


( 1, 10)si x % 2 == 0]

4.4 Módulos
Python contiene muchas funciones integradas que se proporcionan como bibliotecas del lenguaje. Cuando instalas Python,
viene con muchas bibliotecas diferentes para diversas tareas. Además, puedes agregar bibliotecas de terceros (de PyPi)
y aumentar el número de bibliotecas a las que tienes acceso mientras programas.

Antes de eso, tienes que importarlos en tu código. En C++#incluir, en C#usando, en Java y


Pythonimportar.
Por ejemplo, queremos importar elmatemáticasbiblioteca y usar algunas de sus funciones.

importar matemática
imprimir matemáticas. pi
imprimir matemáticas. raíz cuadrada de 3

En lugar de traer todas las bibliotecas matemáticas a tu código y ensuciar tu ámbito global, puedes importar
funciones seleccionadas:

frommathimportceil , piso
printceil3.7 ( )
printfloor3.7 ( )

Si eres perezoso y te resulta difícil escribirmatemáticasuna y otra vez, puedes elegir un alias más corto.

importar matemáticas m
printpi m.

Los módulos de Python son solo archivos de Python ordinarios. Puedes escribir los tuyos y importarlos. El nombre del
el módulo es el mismo que el nombre del archivo.

¿Cómo puedo averiguar qué funciones están envueltas dentro de un módulo?

En Python, cada vez que quieras hacer una lista de funciones disponibles asociadas con un objeto, clase o
uso de módulodir(nombre del objeto o módulo) .

importar matemáticas

dir(matemáticas)
50PARTE 1: Introducción a la programación en Python

How Can I have list of all available modules in Python?

importarsys
sys.nombres_modulos_incorporados

¿Cómo puedo tener un comentario de ayuda para una función o módulo?

Prueba simple:ayuda(función, nombre del objeto o módulo)

4.4.1 Crea tu propio módulo


Uno de los conceptos más importantes en una buena programación es reutilizar el código y evitar la repetición. La idea
es escribir funciones y clases con un propósito y alcance bien definidos, y reutilizarlas en lugar de
repetir código similar en diferentes partes de un programa (programación modular). El resultado suele ser que
la legibilidad y mantenibilidad de un programa mejoran considerablemente. Lo que esto significa en la práctica es que nuestro
los programas tienen menos errores, son más fáciles de extender, depurar y solucionar problemas.

Python admite la programación modular en diferentes niveles. Las funciones y las clases son ejemplos de herramientas para
programación modular de bajo nivel. Los módulos de Python son un constructo de programación modular de nivel superior,
donde podemos recopilar variables, funciones y clases relacionadas en un módulo. Un módulo de Python se define en un
archivo de python (con la extensión de archivo .py), y se puede hacer accesible a otros módulos y programas de Python
usando la declaración de importación.

Considere el siguiente ejemplo: el archivomimó[Link] ejemplos de implementaciones simples de un


variable, función y una clase:

"""
Ejemplo de un módulo de python. Contiene una variable llamada my_variable,
una función llamada my_function, y una clase llamada MyClass.
"""

mi_variable = 0

defmi_función():
"""
Función de ejemplo
"""
retornar_mi_variable

classMiClase:
"""
Clase de ejemplo.
"""

def__init__ (sí mismo):


variable
. self = mi_variable
51PARTE 1: Introducción a la Programación en Python

definir_variable(sí mismo
, new_value):
"""
Establecer [Link] en un nuevo valor
"""
yo mismo
. variable = nuevo_valor

definir_variable(self):
variable de. retorno

Ahora guarda este archivo [Link], luego crea otro archivo de python en el mismo directorio y al principio
Línea en la que puedes importar tu módulo.

importarmimódulo

Incluso tú puedes usarayuda()función para obtener la cadena de documentación de tu módulo.

ayuda(mimódulo)

Recuerdaqueenestemódulotienesunavariableglobal mi_variabley uno


function mi_funcióny una clasemi_claseAsí que puedes usar cualquiera de ellos como a continuación.

imprimirmimódulo
. mi_variable
imprimemimódulo. mi_función()

mi_clase = mymodule. MiClase()


mi_clase. establecer_variable
( 10)
mi_clase. obtener_variable()

Puedes hacer algunos cambios dinámicos en tu módulo. Por ejemplo, puedes


ejecutarmymodule.my_variable = 20,entoncessideseasrestablecerloasuvalorpredeterminado,puedes
usarrecargar(mimódulo) .

4.5 Programación Orientada a Objetos

4.5.1 Clase

Creando Clases

Las clases son la característica clave de la programación orientada a objetos. Una clase es una estructura para representar un
objeto y las operaciones que se pueden realizar sobre el objeto. En Python, una clase puede contener atributos
(variables) y métodos (funciones). Una clase se define casi como una función, pero utilizando elclasekeyword,
y la definición de la clase generalmente contiene una serie de definiciones de métodos de clase (una función en una clase).

Cada método de clase debe tener un argumentoyo mismocomo su primer argumento. Este objeto es una autorreferencia.
52PARTE 1: Introducción a la programación en Python

Algunos nombres de métodos de clase tienen significados especiales, por ejemplo:

__init__El nombre del método que se invoca cuando el objeto se crea por primera vez.

__str__Un método que se invoca cuando se necesita una representación de cadena simple de la clase, como
por ejemplo, cuando se imprime.

Puedes encontrar muchos másaquí

Vamos a crear nuestra primera clase para mostrar un Punto 2D con dos propiedades: X e Y.

classPoint:
"""
Una clase simple para representar un punto en un sistema de coordenadas cartesianas
sistema.
"""

def__init__ ( yo mismo
, x y):
"""
Crea un nuevo Punto en x, y.
"""
yo mismo
.x = x
auto. y = y

deftraducción( auto, dx, dy):


"""
Desplace el punto por dx y dy en la dirección x y y.
"""
. x +=dx
sí mismo
. y +=dy
sí mismo

def __str__(self):
return("Punto en [%f, %f]" % (self . x, self.y))

esto invocará el método __init__ en la clase Point


p1 = Punto ( 0, 0)

esto invocará el método __str__


printp1

# acceder al método de la clase


p2 = Punto( 1, 1)

p1. translate(0.25, 1.5)

imprimir(p1)
print(p2 )
53PARTE 1: Introducción a la Programación en Python

Ten en cuenta que llamar a métodos de clase puede modificar el estado de esa instancia de clase en particular, pero no afecta
otras instancias de clase o cualquier variable global.

Esa es una de las cosas agradables sobre el diseño orientado a objetos: el código, como funciones y variables relacionadas.
están agrupados en entidades separadas e independientes.

4.5.2 Herencia
En Python, vincular una relación de herencia entre clases tiene dos pasos. Primero, debes mencionar
el nombre de la clase padre, luego dentro de un constructor hijo, tienes que llamar al constructor padre.

classPoint:
"""
Clase simple para representar un punto en un sistema de coordenadas cartesiano
sistema.
"""

def__init__ ( auto, x, y):


"""
Crea un nuevo Punto en x, y.
"""
sí mismo
.x = x
yo mismo
.y = y

deftraducir ( yo mismo
, dx, dy):
"""
Traslada el punto por dx y dy en la dirección x e y.
"""
. x +=dx
yo mismo
. y +=dy
yo mismo

def__str__ (sí mismo):


return("Punto en [%f, %f]" % (self . x, sí mismo
. y))

def__repr__ (sí mismo):


devuelve("Punto en [%f, %f]" % (self . x, sí mismo
. y))

classPunto3D(Punto):
def__init__self
( , x, y, z):
Punto . __init__ (a sí, mismo
x, y)
yo mismo
.z = z

deftraducir ( auto, dx, dy, dz):


Punto. traducir ( yo mismo
, dx, dz)
. z +=dz
yo mismo
54PARTE 1: Introducción a la Programación en Python

def__str__ (sí mismo):


return("Punto en [%f, %f, %f]" % (self. x, yo mismo
. y, auto. z))

def__repr__ (self):
regresar("Punto en [%f, %f, %f]" % (self
. x, auto. y, yo mismo
. z))

p = Punto3D( 4, 5, 2)
imprimirp

p. traducir ( 1, 1, 1)
imprimirp
PARTE 1: Introducción a la Programación en Python

5 Temas Avanzados

5.1 Entrada/Salida de Archivos

5.1.1 Crear un archivo


¡Confía en mí! ¡Una de las cosas más simples en Python es crear un archivo! El primer paso es crear un manejador de archivos y luego
comienza a escribir tus datos, finalmente tienes que cerrar tu manejador de archivos.

Abrir un manejador de archivos conabrir(ruta, modo)

f = abrir
( r'c:\pycademy\[Link]', 'w')

El primer argumento es el nombre de su archivo y su ruta, luego el segundo parámetro es su modo de acceso al archivo. Tenemos el
modos siguientes para acceder a archivos abiertos.

r solo acceso de lectura


rbsolo acceso de LECTURA desde archivos binarios

w solo acceso de escritura


wbsolo acceso de ESCRITURA a un archivo binario

w+Lectura y escritura de acceso a un archivo. Sobrescribe el archivo existente si el archivo existe. Si el archivo no existe
existe, crea un nuevo archivo para leer y escribir.
a solo AGREGAR a un archivo

absolo AGREGAR a un archivo que es binario

a+tanto APPEND como LEER

Ahora escribe en el archivo usandoescribir()

[Link]("Providing better computer science education in public schools


a los niños, y fomentar la participación de las niñas, es la única manera de
reescribir los estereotipos sobre la tecnología y realmente abrir el viejo círculo de hombres

club. )

Y finalmente tienes que cerrar tu archivo.

[Link]()
56PARTE 1: Introducción a la programación en Python

5.1.2 Leer un archivo

Similar [Link], puedes leer fácilmente de un archivo. Nuevamente, tienes que abrir un archivo con acceso de lectura, y luego
llama alleermétodo.
Para leer un archivo tienes diferentes enfoques:

Leer archivo completo

f = abrir ( r'c:\pycademy\[Link]', 'r')


imprimirleer()
f.
f. cerrar()

¿Qué pasa si el archivo que estás leyendo es demasiado grande para ser cargado en la memoria?

Leer un número específico de bytes

f = abrir ( r'c:\pycademy\[Link]', 'r')


imprimir f. leer ( 10)
f. cerrar()

En este enfoque podemos comenzar leyendo X bytes del archivo, luego procesar esa cantidad y luego continuar.
a los próximos X bytes. Sigue haciendo esto hasta que llegues al final del archivo, entonces el valor de retorno sería un
¡cadena vacía! Por lo tanto, puedes procesar archivos grandes de manera fácil y eficiente.

Abrir Caja Fuerte

Si eres como yo y olvidas cerrar el archivo, hay una solución para ayudarte. Considera el siguiente código:

conabrir ( r'c:\pycademy\[Link]', 'r')as f:


[Link]()
Estoy feliz ahora

En esta versión elconse encargará de cerrar el manejador de archivos. Así que cuando termines tuIOtarea el manejador
se cerrará automáticamente.

5.1.3 Algunos Métodos a Nivel de SO

En esta sección hablaré sobre algunos temas relevantesSOfuncionalidades de nivel que necesitamos para cualquier programación de IO.

¡Verifique si existe un camino dado o no!

importos
ifos .[Link](r'c:\pycademy\[Link]'):
#haz tu tarea
57PARTE 1: Introducción a la programación en Python

Obtén algunas estadísticas sobre un archivo

importos
ruta ifos. . existe( r'c:\pycademy\[Link]'):
estadística
= os. estado
( r'c:\pycademy\[Link]')
imprimirestado
printstat.st_size

Eliminar un archivo

importos
ruta ifos. . existe(r'c:\pycademy\[Link]'):
(r'c:\pycademy\[Link]')
os. eliminar

Crear y Eliminar Directorio

importos
#crear
os. mkdir( r'c:\prueba'
)
#eliminar
os. rmdirr
( 'c:\test' )

Obtener lista de archivos y directorios

importos
artículos= los
. listdir( r'c:/'
imprimir artículos

Buscar archivo basado en un patrón

globes una biblioteca que proporciona un enfoque fácil para obtener listas de archivos dentro de un directorio según un dado
criterios de filtrado.

El siguiente código devuelve todos los archivos con la extensió[Link] deusuariodirectorio.

importarglob
archivos= [Link]('c:/user/*.jpg')
archivos_de_impresión

globodevuelve una lista de cadenas que cada elemento contiene el nombre del archivo y su ruta completa.
58PARTE 1: Introducción a la Programación en Python

5.2 Exceptions Handling


En Python, los errores se gestionan con un constructo de lenguaje especial llamado "Excepciones". Cuando ocurren errores
se pueden generar excepciones, lo que interrumpe el flujo normal del programa y retorna a otro lugar en
el código donde está más cercaintento-excepciónla declaración está definida.
Para capturar de manera elegante los errores que son generados por funciones y métodos de clase, o por el intérprete de Python
en sí, usa elintentaryexceptostatements:

intentar
# el código normal va aquí
excepto:
# el código para el manejo de errores va aquí
este código no se ejecuta a menos que el código
# arriba genera un error

¡Recuerda que se genera un error cuando intentas acceder a un diccionario con una clave que no existe! Puedes
gestiona esto conintento-excepciónblock:

country_codes= {'Malaysia' : MS , 'China':'ZH',


Irán : IR , América EE. UU. }
intentar
imprimir_códigos_de_pais
Italia
excepto:
print "La clave no existe"

Puedes tener más información sobre la excepción levantada. Ve los siguientes ejemplos:

intentar
5 / 0
exceptoExcepciones e:
imprimir "Error:"
, e
pase

En este ejemplo ese contiene información sobre la excepción levantada.

5.3 Tiempo
Este módulo proporciona una serie de funciones para manejar fechas y el tiempo dentro de un día. Es una capa delgada.
sobre la biblioteca de tiempo de ejecución de C.

Una fecha y hora dadas pueden ser representadas como un valor de punto flotante (el número de segundos desde un
fecha de referencia, generalmente el 1 de enero de 1970), o como una tupla de tiempo.
59PARTE 1: Introducción a la programación en Python

5.3.1 Hora Actual


importar tiempo
ahora= .time()
tiempo
imprimirahora

=>
1404651432.99 segundos desde (1970, 1, 1, 0, 0, 0)

Hay muchas otras cosas que puedes hacer contiempomódulo. Para más información, consulteaquí

5.3.2 FechaHora
DateTime es un módulo que simplemente proporciona fecha y hora :) Puedes acceder a la fecha y hora actuales,
o puedes crear tu propio objeto de fecha y hora. Puedes usar estos objetos en tu aplicación para comparar
fecha diferente, consulta de base de datos y otros propósitos. Los objetos del tipo de dato representan una fecha y un
hora en alguna zona horaria.

El módulo contiene los siguientes tipos:


Thedatetimetype represents a date and a time during that day.
El tipo de dato representa solo una fecha, entre el año 1 y 9999 (ver más abajo para más información sobre el
calendario utilizado por el módulo de datetime

El tipo de tiempo representa un tiempo, independiente de la fecha.

El tipo timedeltatype representa la diferencia entre dos objetos de tiempo o fecha.


Thetzinfotype se utiliza para implementar el soporte de zona horaria para objetos de tiempo y fecha y hora; más sobre

eso de abajo.

datetime

importar fecha y hora


fecha = fecha y . fecha
hora y hora
( 2014, 7, 6, 20, 50, 10)
imprimirfecha
imprimirfecha . año , fecha
. mes , fecha. día
imprimirfecha . hora, fecha
. minuto, [Link]
imprimirfecha . microsegundo

También puedes crear objetos de fecha y hora utilizando una de las muchas funciones de fábrica integradas (pero ten en cuenta que todos
tales funciones se proporcionan como métodos de clase, no como funciones de módulo:

importar datetime
importar tiempo
60PARTE 1: Introducción a la Programación en Python

imprimirfecha . fecha y hora


(2014, 7, 6, 21, 41, 43)

imprimirtimestamp
. fecha y hora
. hoy()
imprimirfecha . fecha y hora
. ahora()
imprimirfecha . fecha y hora
. fromtimestamp([Link]())

=>
2014-07-06 21:41:43
2014-07-06 20:53:33.465000
2014-07-06 20:53:46.981000
2014-07-06 20:53:59.268000

El tipo de fecha y hora proporciona otros métodos de formato también, incluido el muy general strftime.
método

importar datetime
importar tiempo

ahora
= [Link]()

imprimirahora
imprimir ahora . ctime()
imprimirenow . isoformato()
imprimirahora . strftime("%Y%m%dT%H%M%S")

=>
2014-07-06 20:54:12.586000
Domingo 6 de julio de 2014 20:54:12

2014-07-06T20:54:12.586000
20140706T205412

5.4 Expresión regular


Una expresión regular es una secuencia especial de caracteres que te ayuda a coincidir o encontrar otras cadenas o conjuntos.
de cadenas, utilizando una sintaxis especializada mantenida en un patrón. Las expresiones regulares son ampliamente utilizadas en el mundo UNIX.

Python proporciona una gran biblioteca llamadareproporcionar funcionalidad de expresiones regulares.

En general, necesitamos las siguientes habilidades:

Encontrar y hacer coincidir patrones dentro de un texto grande basado en una expresión regular

Buscar un patrón basado en expresiones regulares


Dividir un texto utilizando una expresión regular como delimitador

Reemplazar patrones definidos por una expresión regular con un reemplazo


61PARTE 1: Introducción a la programación en Python

Compilar una expresión regular en un objeto Regex

Match

Esta función intenta hacer coincidir el patrón RE con la cadena con flags opcionales.

Aquí está la sintaxis para esta función:

[Link](patrón, cadena, flags=0)

Aquí está la descripción de los parámetros:


Este es la expresión regular que se debe coincidir.
Esta es la cadena, que se buscaría para coincidir con el patrón al principio de la cadena.
banderas: Puedes especificar diferentes banderas utilizando OR bitwise (|). Estos son modificadores, que se enumeran en
la tabla de abajo:

Modificador Descripción

re.I Realiza una búsqueda que no distingue entre mayúsculas y minúsculas.

Interpreta las palabras de acuerdo con la configuración regional actual. Esta interpretación afecta al alfabeto
re.L grupo (\w y \W), así como el comportamiento de los límites de palabra (\b y \B).

Hace que $ coincida con el final de una línea (no solo con el final de la cadena) y hace que ^ coincida con el inicio
re.M
de cualquier línea (no solo el inicio de la cadena).

re.S Hace que un punto (.) coincida con cualquier carácter, incluyendo un salto de línea.

Interpreta letras de acuerdo con el conjunto de caracteres Unicode. Esta bandera afecta el comportamiento de
re.U
\w, \W, \b, \B.
Permite una sintaxis de expresión regular "más mona". Ignora los espacios en blanco (excepto dentro de un conjunto []) o
re.X cuando se escapa con una barra invertida) y trata el # no escapado como un marcador de comentario.

[Link] función devuelve un objeto de coincidencia en caso de éxito, None en caso de falla. Usaríamosgrupo(núm)o
grupos()función del objeto de coincidencia para obtener la expresión coincidente.

importar
línea= Los gatos son más inteligentes que los perros
matchObj = re. partido ( (.*) son (.*?) .* , línea
, re.M|re.I)
ifmatchObj :
print "[Link]() : ", matchObj. group()
print "[Link](1) : ", matchObj. grupo( 1)
print"[Link](2) : " , matchObj. grupo( 2)
de lo contrario:
¡No hay coincidencia!!
62PARTE 1: Introducción a la Programación en Python

Cuando se ejecuta el código anterior, produce el siguiente resultado:

[Link]() : Los gatos son más inteligentes que los perros


[Link](1) : Gatos
[Link](2) : más inteligente

Buscar

Esta función busca la primera ocurrencia del patrón RE dentro de la cadena con banderas opcionales.
Todo sobre este método es exactamente igual apartidoexcepto uno diferente. Python ofrece dos diferentes
operaciones primitivas basadas en expresiones regulares: match verifica una coincidencia solo al principio de la
cadena, mientras que la búsqueda verifica si hay una coincidencia en cualquier lugar de la cadena (esto es lo que Perl hace por defecto).

Por lo tanto, para verificar o buscar un patrón NO utilicespartidoya que no verifica en ningún lugar.

Reemplazar

Algunos de los métodos más importantes de re que utilizan expresiones regulares son sub.

SINTAXIS:

re. sub( patrón , repl, cadena, max=0)

This method replaces all occurrences of the RE pattern in string with repl, sustituyendo todas las ocurrencias
a menos que se proporcione el máximo. Este método devolvería una cadena modificada.

EJEMPLO: A continuación se presenta el ejemplo:

importar

= 2004-959-559 # Este es el número de teléfono


teléfono

# Eliminar los comentarios al estilo de Python

num = re. sub( r'#.*$', "", teléfono)


Imprimir"Número de teléfono: , " número

Eliminar cualquier cosa que no sean dígitos


num = re . subr'\D'
( , "teléfono
, )
Imprimir "Número de Teléfono , : " num

Cuando se ejecuta el código anterior, produce el siguiente resultado:

Phone Num : 2004-959-559


Phone Num : 2004959559
63PARTE 1: Introducción a la Programación en Python

Compilar

Siempre que necesites utilizar alguna de las funciones anteriores con frecuencia para el mismo patrón, para ahorrar tiempo y
mejorar el rendimiento, es mejor crear un objeto REGEX.
En realidad, cada vez que llamas a cualquiera de las funciones anteriores, primero Python analiza el patrón dado y lo compila.
en un objeto intermedio, luego usa ese para la coincidencia de patrones. Así que si estás dentro de un bucle for que
se repite millones de veces, y estás buscando un mismo patrón entre millones de textos diferentes, entonces cada
en cada ciclo desperdiciarás una cantidad significativa de tiempo por cada recreación ficticia de un objeto REGEX.

En estos casos, la forma racional es crear un objeto REGEX antes del bucle for y luego volver a utilizarlo.
again! It's a kind of caching!
De todos modos, mira el siguiente ejemplo:

importar

comentarista = [Link](r'#.*$')
phone"2004-959-559
= # This is Phone Number"
imprimir. sub ( comment_matcher , "teléfono
, )

teléfono= 2034-959-559 # Este es el número de teléfono


printre . sub (comentario_coincidencia
, "teléfono
, )

=>
2004-959-559
2034-959-559

Como pueden ver, obtuvimos el mismo resultado, pero por segunda vez no creamos otro patrón nuevamente y
¡de nuevo!

5.5 Comparar Secuencias


Para resumir todo lo que te dijimos sobre las secuencias de python, por favor sigue este enlace para tener una generalización.
comparación entre secuencias de python.

5.6 Conjunto de Problemas: ¡Hora de Desafío!

Ahora, es un buen momento para desafiar lo que has aprendido. En esta sección, compartiré docenas de
problemas de programación que deben implementarse con Python. No te voy a dar las respuestas. Yo
necesito que te concentres y trates de responder todas, si no puedes, entonces puedes contactarme a través de mi correo electrónico.

Está bien, empecemos...


64PARTE 1: Introducción a la programación en Python

5.6.1 Aritmética
Para esta sección, tienes que crear un archivo [Link]ál va a ser tu propio módulo. Entonces
implemente su código dentro de este módulo. Vamos a usar esto como su biblioteca en la siguiente sección.
Para cada uno de los siguientes problemas, diseña e implementa un algoritmo usando Python.
[Link] Sort
2. Ordenación por mezcla

3. Lista de divisores de números

[Link] de Números Primos

5. Contador de frecuencia dentro de una bolsa de palabras

5.6.2 Biblioteca de Python

1. Instalarpipyherramientas_de_instalación
2. Instalarpyquery
3. Instalarcorreo

5.6.3 Archivos y Carpetas


1. Dentro de la carpeta Pycademy, crea una subcarpetafotosy luego copia algunas imágenes en la carpeta.
2. UsarArchivoZipzippicscarpeta y nombrarla '[Link]'
3. Envía un correo electrónico y adjunta el archivo comprimido.

5.6.4 Html
Descargar HTML para el siguiente enlace
[Link]
ExtractText from Html (Using PyQuery)

Eliminar palabras vacías (Las palabras vacías están disponibles dentro de la carpeta PyCademy en el [Link])

Calcula la distribución de frecuencia para cada palabra.

También podría gustarte