88

Python 3.9 disponible ¿qué hay de nuevo?

49796Puntos

hace 7 meses

Curso Básico de Python
Curso Básico de Python

Curso Básico de Python

Inicia en el mundo de la programación con el lenguaje de mayor crecimiento en el planeta: Python. Descubre qué es un algoritmo, y cómo se construye uno. Domina las variables, funciones, estructuras de datos, los condicionales y ciclos.

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.

Soporte para zonas horarias (Time Zone)

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()

Nuevos operadores para diccionarios

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.

Nuevos métodos de strings para remover prefijos y sufijos

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'

Type hinting o notaciones de tipo de dato

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

Un nuevo parser

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.

¿Esto afectará mi aprendizaje o código actual?

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!

Curso Básico de Python
Curso Básico de Python

Curso Básico de Python

Inicia en el mundo de la programación con el lenguaje de mayor crecimiento en el planeta: Python. Descubre qué es un algoritmo, y cómo se construye uno. Domina las variables, funciones, estructuras de datos, los condicionales y ciclos.
Héctor Daniel
Héctor Daniel
Terranigma

49796Puntos

hace 7 meses

Todas sus entradas
Escribe tu comentario
+ 2
Ordenar por:
5
10569Puntos

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í!

2
6789Puntos

Que buenos aportes. ¡Gracias por la infomación!

2
12492Puntos

Gracias! Es importante estar pendiente de los cambios para que no nos tomen por sorpresa y que no desaprovechemos las ventajas.

2
867Puntos

Genial!, muchas gracias por la información!

2
8212Puntos

Muchas gracias…!

2
5227Puntos

de verdad esto hace valorar la palabra "comunidad"
muchas gracias!!

2
33567Puntos

Gracias por compartí Héctor, está bien bueno el Update.

2
10830Puntos

Muy buena información.

2
5805Puntos

Excelente muchas gracias

2
14356Puntos

Está genial, gracias por compartir 😄

2
19709Puntos

Excelente !

2
10416Puntos

Gracias por el Dato Héctor!

2
160Puntos

Muchas gracias por compartir y explicar algunos novedades de las actualizaciones.
Saludos.

2
2678Puntos

Gracias por compartir la información

1

Gracias por el aporte. Muy bueno. Les recomiendo mucho el curso aquí arriba promocionado. Yo estoy a punto de terminarlo, y está de lujo.

1
14568Puntos

¿Qué sucede con los nuevos operadores de dicionarios cuando hay keys repetidas?

1
1230Puntos

Python viene con grandes maravillas. Me fascina como han agregado esos pequeños detalles

1
8912Puntos

Hola Terra, recuerda que las funcionalidades de type hinting existen desde la version 3.5 de python, un saludo.

1
3009Puntos

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?

1
49796Puntos
7 meses

Intenta escribiendo python3.9 --version
Es posible que se haya guardado en una ubicación distinta 😄

1
3009Puntos
7 meses

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.

Screenshot_1.png
1
2611Puntos

¿Ahora si van a actualizar los cursos o que?

1
49796Puntos
7 meses

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 😉

1
2611Puntos
7 meses

¿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

1
2611Puntos

¿Ahota si van a actualizar los cursos de python y django?