Introducción a la Programación en Python
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
3
1 Introduction
4
1.4 ¿Qué hace que Python sea increíble?
¡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
Grandes Comunidades
Repositorio gratuito(PyPi)
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++.
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
<?php
$x=1;
mientras($x<5)
{
echo"El número es:$x<br>";
x++;
}
?>
¡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!
Disney
Nokia
IBM
Games (Civilization, Battelfield)
Genómica
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!
¡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].
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
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!
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
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
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.
imprimir3 > 2
imprimir3 < 1
imprimir Verdadero
print False
imprimir5 == 5
imprimir5 != 5
print 5 <> 5
imprimir5 > 5
imprimir5 < 5
imprimir5 >= 5
print 5 <= 5
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
¡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
¿Quién es el primero!
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
imprimirmensaje .upper()
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: ,
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 ]
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.
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
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
cartas = abcdefghijklmnopqrstuvwxyz
imprimir letras
einn ni rE eu E e eee a E e t
printletters[:: 3]
printletters[:: 1]
imprimir letras [5:15:3]
cartas = abcdefghijklmnñopqrstuvwxyz
#Prueba esto letters[::-1]
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:
Ejemplo 2:
Ejemplo 3:
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:
Ejemplo 6:
Ejemplo 7:
imprimirtexto . encontrar
( es )
imprimirtxt . encontrar
( es , 5)
imprimir texto . encontrar
( isss )
17PARTE 1: Introducción a la Programación en Python
Ejemplo 8:
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)
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: cadena
% D: entero
% O: octal
% X: hexadecimal
% F: real
% E: exponencial real
%%: Signo de porcentaje
Ejemplo:
imprimirmensaje . formato
( comida
= Pizza , comprador
= Tom , hora= 8, minutes=10)
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)
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
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
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)
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)
s = abcdefg
s[ 2] ='x'
s = hola
imprimirid ( s)
s = adiós
imprimirID ( s)
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
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 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.
data= []
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
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!
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()
De 0 a 10
mi_lista= rango(10)
imprimir_mi_lista
Del 10 al 20
mi_lista= rango
( , 10
20)
imprimir_mi_lista
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.
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]
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:
3.1.7 Existencia
De manera similar, puedes usarenverificar la existencia de un elemento.
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.
list_1= [ 1, 2, 3, 4]
list_2= [ 5, 6, 7, 8]
list_1 += list_2
imprimirlista_1
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
Ejemplo 1: Tenemos una lista de contenidos de GC calculados, pero queremos expresarlos todos como un
porcentaje (significado: cada elemento en la lista * 100)
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.
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.
¡Solo recuerda que si no existe, Python devolverá una excepción! ¡No hay -1! Para manejar esto, debes
¡ser capaz de manejar excepciones!
3.2 Tupla
Sintaxis:
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
Inmutable
Sí, las tuplas son inmutables y no puedes cambiarlas. ¡Similar a las cadenas!
3.2.4 Cortando
Nuevamente similar a la lista...
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
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.
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
)
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:
¿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 = dict([
( Malasia , MS
( China , 'ZH'
( Irán , IR
( América , US
imprimir_códigos_de_país
imprimircódigos_de_país
Alemania
'America':'US'}
imprimir 'Malasia' en códigos de países
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!
Claves:.keys()
Values : .valores()
Intentemos:
forname , codeincountry_codes.items():
printname , '=>', código
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á:
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!
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
}
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
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.
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.
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
data= [ 1, 2, 3, 3, Hola
t = ( 1, 2, 3, 3, Hola
conjunto de impresión
( data)
conjunto de impresión
( t)
¡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
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.
Como dijimos antes, en Python, el conjunto te proporciona la teoría de conjuntos! Esto significa que tenemos unión, intersección, y
¡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
Intersección de dos conjuntos: Las personas se han registrado tanto para introducción como para base de datos
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
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
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.
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
# ¡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
statement1=False
ifstatement1 :
imprimir("impreso si la declaración 1) es Verdadera")
declaraciónSi1
:
print("impreso si la declaración 1 es) Verdadera")
Si el bloque de código está compuesto por una sola línea, se puede escribir después de los dos puntos:
4.1.3 IF en línea
A partir de la versión 2.5, Python admite la expresión:
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#.
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í...
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.
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:
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.
Iterar un rango
Iterar un diccionario
valor de la clave
, en códigos de país .items():
printkey' : ' value
, ,
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
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.
círculo ( radio):
radio= del área
2 * 3.14
área de retorno
defmax ( x, y):
m = x si x >= y sino y
regresar m
imprimirmax ( 10, 5)
imprimirmax ( y= 10, x=5)
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
)
En la definición de una función, podemos dar valores predeterminados a los argumentos que toma la función:
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.
imprimircírculo ( 10)
imprimircirculo ( 10, 2.6)
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
defarea_circulo( r):
devolver r 2 3.14
defcircuferencia_circulo(r):
return3.14r * 2 *
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
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.
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)
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:
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
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.
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.
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
importarsys
sys.nombres_modulos_incorporados
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.
"""
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.
"""
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
ayuda(mimódulo)
imprimirmimódulo
. mi_variable
imprimemimódulo. mi_función()
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
__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.
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
def __str__(self):
return("Punto en [%f, %f]" % (self . x, self.y))
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.
"""
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
classPunto3D(Punto):
def__init__self
( , x, y, z):
Punto . __init__ (a sí, mismo
x, y)
yo mismo
.z = 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
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.
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
club. )
[Link]()
56PARTE 1: Introducción a la programación en Python
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:
¿Qué pasa si el archivo que estás leyendo es demasiado grande para ser cargado en la memoria?
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.
Si eres como yo y olvidas cerrar el archivo, hay una solución para ayudarte. Considera el siguiente código:
En esta versión elconse encargará de cerrar el manejador de archivos. Así que cuando termines tuIOtarea el manejador
se cerrará automáticamente.
En esta sección hablaré sobre algunos temas relevantesSOfuncionalidades de nivel que necesitamos para cualquier programación de IO.
importos
ifos .[Link](r'c:\pycademy\[Link]'):
#haz tu tarea
57PARTE 1: Introducción a la programación en Python
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
importos
#crear
os. mkdir( r'c:\prueba'
)
#eliminar
os. rmdirr
( 'c:\test' )
importos
artículos= los
. listdir( r'c:/'
imprimir artículos
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.
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
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:
Puedes tener más información sobre la excepción levantada. Ve los siguientes ejemplos:
intentar
5 / 0
exceptoExcepciones e:
imprimir "Error:"
, e
pase
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
=>
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.
eso de abajo.
datetime
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
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
Encontrar y hacer coincidir patrones dentro de un texto grande basado en una expresión regular
Match
Esta función intenta hacer coincidir el patrón RE con la cadena con flags opcionales.
Modificador Descripción
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
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:
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.
importar
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
, )
=>
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!
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.
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
1. Instalarpipyherramientas_de_instalación
2. Instalarpyquery
3. Instalarcorreo
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])