Python es uno de los lenguajes que se mantiene en los primeros lugares cuando consultamos el índice TIOBE, las encuestas de Stack Overflow, JetBrains, GitHub y otros sitios de referencia. Las razones son la facilidad de aprendizaje, capacidades para desarrollo en la web, implementaciones para ciencia de datos e inteligencia artificial y otras más.
Por ello es natural que al haber una actualización mayor todo el mundo mire para saber que nos ofrecerá de nuevo este lenguaje con sus ya bastante amplias capacidades y estas son algunas de las novedades más relevantes.
El módulo datetime
ya nos permitía trabajar con fechas y horas en el formato UTC y debíamos recurrir a librerías de terceros si queríamos hacer algún manejo con las mismas. Ahora se incluye el nuevo módulo zoneinfo
para implementar zonas horarias de la base de datos IANA.
Podemos obtener un objeto describiendo la zona horaria de la siguiente forma:
>>> from zoneinfo import ZoneInfo
>>> ZoneInfo("Mexico/BajaSur")
zoneinfo.ZoneInfo(key='Mexico/BajaSur')
Si queremos conocer cuales son las zonas horarias disponibles de la base de datos de IANA, ejecutar el comando zoneinfo.available_timezones()
Los diccionarios son una de las estructuras de datos más populares en Python y que debes manejar correctamente ya que te acompañarán en muchos de tus proyectos.
Estos son los operadores merge (|
) y update (|=
) que complementan los métodos ya existentes como dict.update
y {**d1, **d2}
.
Veamos un ejemplo al combinar diccionarios:
>>> javascript = {"angular": "Nicolas Molina", "react": "Richard Kaufman"}
>>> marketing = {"copywriting": "Diana Reyes", "Growth": "Sofia Maradiaga"}
>>> javascript | marketing
{'angular': 'Nicolas Molina', 'react': 'Richard Kaufman', 'copywriting': 'Diana Reyes', 'Growth': 'Sofia Maradiaga'}
>>> marketing | javascript
{'copywriting': 'Diana Reyes', 'Growth': 'Sofia Maradiaga', 'angular': 'Nicolas Molina', 'react': 'Richard Kaufman'}
Ahora el resultado de actualizar un diccionario con la información de otro:
>>> javascript = {"angular": "Nicolas Molina", "react": "Richard Kaufman"}
>>> marketing = {"copywriting": "Diana Reyes", "Growth": "Sofia Maradiaga"}
>>> profesores = {}
>>> profesores |= marketing
>>> profesores
{'copywriting': 'Diana Reyes', 'Growth': 'Sofia Maradiaga'}
>>> profesores |= javascript
>>> profesores
{'copywriting': 'Diana Reyes', 'Growth': 'Sofia Maradiaga', 'angular': 'Nicolas Molina', 'react': 'Richard Kaufman'}
Seguro te serán muy útiles estos operadores y podrás ahorrar tiempo.
Seguro ya conoces el método .strip()
que te ayuda a quitar caracteres de tu string, pero en ocasiones puede funcionar de una forma inesperada cuando le damos un parámetro específico.
Estos métodos son string.removeprefix(prefix)
y string.removesuffix(suffix)
, pero nada mejor que verlos en acción para entender cómo funcionan:
Remove prefix
>>> profesora_copy = "Profesora del Curso de Copywriting para Plataformas Digitales">>> profesora_copy.removeprefix("Profesora del Curso de ")
'Copywriting para Plataformas Digitales'
Remove suffix
>>> profesora_copy = "Profesora del Curso de Copywriting para Plataformas Digitales">>> profesora_copy.removesuffix(" para Plataformas Digitales")
'Profesora del Curso de Copywriting'
La notación en funciones es algo que nos acompaña desde 2008 en Python 3.0, característica que ha evolucionado y ahora se presenta en una forma más refinada. Ahora es posible especificar los tipo de datos de los parámetros que pasamos por una función como se hace en otros lenguajes y que resulta bastante útil para bases complejas como diccionarios con un gran volumen de datos evitando indicar el tipo de dato de cada llave-valor.
Veamos un ejemplo sin type hinting:
>>> defsuma_enteros(numero):... return numero + numero
...
>>> suma_enteros('ola ke ase')
'ola ke aseola ke ase'
Ahora con type hinting:
>>> defsuma_enteros(numero: int):... return numero + numero
...
>>> suma_enteros('ola ke ase')
'ola ke aseola ke ase'
Como puedes observar esta notación no arroja un error ya que es posible “sumar” cadenas de caracteres en Python, por lo que debes tener esta consideración. Eso sí, nuestro editor nos indicará que el parámetro ingresado se espera sea de tipo int
y podemos combinarlo con la sintaxis -> type
para indicarlo también en la salida:
>>> defsuma_enteros(numero: int) -> int:... return numero + numero
...
>>> suma_enteros(5)
10
Python 3.9 ahora utilizará un nuevo parser que será ligeramente más ágil aunque esto implique un aumento mínimo en el uso de memoria, suficiente para no ser notado en nuestro día a día. El anterior parser aún podrá ser utilizado y dejará de estar disponible cuando Python 3.10 sea lanzado.
Por supuesto existen muchos más detalles que puedes conocer en la documentación oficial, especialmente aquellas partes del lenguaje que ya han pasado al status deprecated o que se removieron.
En términos generales puedes seguir escribiendo código y aprendiendo de una versión como 3.6, aún así vale la pena que actualices a la más reciente para comenzar a aprovechar estas bondades.
Si aún no conoces de Python o quieres iniciar este lenguaje, te comparto esta ruta de aprendizaje para comenzar ¡Anímate!
Excelente, gracias por la info! Hace un par de meses empecé con Python y estoy simplemente enamorado de este lenguaje, es un placer escribir código allí!
Está genial, gracias por compartir 😄
Gracias por compartir la información
Muchas gracias por compartir y explicar algunos novedades de las actualizaciones.
Saludos.
genial
de verdad esto hace valorar la palabra "comunidad"
muchas gracias!!
Gracias!
Gracias por compartí Héctor, está bien bueno el Update.
Excelente aporte!.
Muchas gracias…!
Que buenos aportes. ¡Gracias por la infomación!
Gracias! Es importante estar pendiente de los cambios para que no nos tomen por sorpresa y que no desaprovechemos las ventajas.
¡Excelente aporte!
Coool
Muy buena información.
Excelente muchas gracias
Excelente !
Gracias por el Dato Héctor!
Genial!, muchas gracias por la información!
Hola Terra, recuerda que las funcionalidades de type hinting existen desde la version 3.5 de python, un saludo.
Python viene con grandes maravillas. Me fascina como han agregado esos pequeños detalles
Muy buena!! Pero tengo un problema… Al instalar una versión nueva siempre que escribo python3 --version me aparece la versión 3.6 y no la nueva versión que instale.
Me podrían ayudar?
Intenta escribiendo
python3.9 --version
Es posible que se haya guardado en una ubicación distinta 😄
Gracias por responder, utilizo Windows Subsystem for linux y aunque trate de actualizar por la terminal siempre pone que estoy usando la version 3.6.
¿Ahora si van a actualizar los cursos o que?
Estas actualizaciones no afectan drásticamente los cursos, así que puedes estar tranquilo al respecto.
Cuando llega a haber algún cambio sustancial se podría actualizar el curso. En palabras de Guido van Rossum incluso la transición de Python 3 a 4 no serán tan drástica como de 2 a 3 😉
¿Entonces cuándo actualizaran el curso de python que tienen en platzi con la versión 2? y más aún el de django que sigue en la versión 2 y django ya está en su versión 3
Ese es un curso antiguo y puedes tomar la versión actualizada aquí: https://platzi.com/cursos/pythonbasico/
En cuanto a Django los cambios no han sido sustanciales y estamos en proceso de actualizarlo 😃
¿Qué sucede con los nuevos operadores de dicionarios cuando hay keys repetidas?
¿Ahota si van a actualizar los cursos de python y django?
el lenguaje esta avanzando a pasos gigantes
Gracias por el aporte. Muy bueno. Les recomiendo mucho el curso aquí arriba promocionado. Yo estoy a punto de terminarlo, y está de lujo.
oh