Python 3.6.0: Novedades en la Versión 3.6.0 de Python
La versión 3.6 de Python fue lanzada el 20 de marzo de 2017. Esta versión introdujo una serie de nuevas características y mejoras, que incluyen:
- Literales de cadena formateados (PEP 498): Esta nueva característica permite formatear cadenas de texto de una manera más concisa y flexible.
- Anotaciones de variables (PEP 526): Esta nueva característica permite asignar un tipo a una variable.
- Módulo asyncio (PEP 3156): Esta mejora del módulo asyncio lo hace más estable y fácil de usar.
- Soporte para OpenSSL 1.1.0 (PEP 468): Esta mejora mejora la seguridad del módulo ssl.
- Soporte para nuevos algoritmos de hash (PEP 468): Esta mejora agrega soporte para los algoritmos de hash BLAKE2, SHA-3 y SHAKE.
Literales de cadena formateados
Los literales de cadena formateados permiten formatear cadenas de texto de una manera más concisa y flexible. En Python 3.6, los literales de cadena formateados se pueden usar con el operador %
o con el método format()
.
Ejemplo con el operador %
:
# Sin literales de cadena formateados
print("El nombre del usuario es %s" % "Juan")
# Con literales de cadena formateados
print("El nombre del usuario es {}".format("Juan"))
Ejemplo con el método format()
:
# Sin literales de cadena formateados
print("El nombre del usuario es {nombre}".format(nombre="Juan"))
# Con literales de cadena formateados
print("El nombre del usuario es {nombre}".format(nombre="Juan"))
Anotaciones de variables
Las anotaciones de variables permiten asignar un tipo a una variable. Esto puede ser útil para mejorar la legibilidad del código y para detectar errores en tiempo de compilación.
Ejemplo:
def suma(a: int, b: int) -> int:
return a + b
print(suma(1, 2)) # 3
# Error: El valor asignado a la variable `a` no es un número entero
a = "hola"
print(suma(a, 2))
Módulo asyncio
El módulo asyncio permite escribir código asíncrono en Python. En Python 3.6, el módulo asyncio se ha mejorado para hacerlo más estable y fácil de usar.
Ejemplo:
import asyncio
async def tarea1():
print("Tarea 1")
await asyncio.sleep(1)
print("Tarea 1 completada")
async def tarea2():
print("Tarea 2")
await asyncio.sleep(2)
print("Tarea 2 completada")
async def main():
# Ejecuta las tareas de forma asíncrona
await asyncio.gather(tarea1(), tarea2())
# Inicia la ejecución asíncrona
asyncio.run(main())
Soporte para OpenSSL 1.1.0
El módulo ssl ahora es compatible con OpenSSL 1.1.0. Esta mejora mejora la seguridad del módulo ssl.
Soporte para nuevos algoritmos de hash
El módulo hashlib ahora es compatible con los algoritmos de hash BLAKE2, SHA-3 y SHAKE.
Conclusión
La versión 3.6 de Python introdujo una serie de nuevas características y mejoras que la hacen más potente y flexible.