Python 3.8 Changements importants !

La version 3.8 de python est sortie ! Les quelques changements importants à connaitre sont disponibles ici (le site officiel de python). Je vous propose de voir les plus importants dans cet article et dans la vidéo qui l’accompagne.

1 Python 3.8 a un nouvel opérateur ! le Walrus :=

Python 3.8 nous offre un tout nouvel opérateur: le Walrus. il permet de faire une affectation suivie d’une utilisation de la variable, sur une seule ligne. Exemple:

# avant python 3.8
x = 5
if x > 0 :
        print('positif')
else:
        print('negatif')

# a partir de python 3.8
#x = 5
if (x:=5) > 0 :
        print('positif')
else:
        print('negatif')


L’avantage de cet opérateur est qu’il permet d’écrire en une ligne, ce qui prenait deux lignes auparavant. L’inconvénient, c’est qu’il risque de nous donner des maux de tete ! Nous verrons si la communauté python l’adopte ou non dans les prochains mois.

Note: le Walrus est l’animal marin appelé morse en français. le symbol := est sensé ressembler aux grandes dents du mammifère. Qu’en pensez-vous ? 🙂

2. Arguments positionnels de python 3.8

A partir de python 3.8, il est possible de créer des arguments positionnels pour nos fonctions. Ces arguments ne sont plus désignés par leur keyword, mais par leur position dans la définition de la fonction. Pour ça, il faut écrire le symbole “/” dans la définition de la fonction, et tous les arguments qui le précédent deviennent des arguments positionnels. Exemple:

# dans cette fonction a et b sont des arguments positionnels. c ne l'est pas
def fonction(a, b, /, c):
        print(a*b +c)

fonction(2, 3, c=4) # au moment d'utiliser la fonction, pas de keyword ! sinon c'est une erreur

Avantage: on peut changer le nom des arguments a et b dans la définition de la fonction, sans avoir à modifier toutes les lignes où la fonction est utilisée.

Inconvénient: il faut faire attention de ne pas se mélanger les pinceaux dans l’ordre dans lequel les arguments doivent êtres passés.

3. f-String de python 3.8 peut afficher variables et valeurs d’un coup !

Voici à présent le changement qui fait plaisir ! f-String a été améliorée pour que vous puissiez désormais afficher une variable et son résultat d’un coup ! Pour ça, il suffit d’écrire f”{variable=}”. Petite démonstration:

# avant python 3.8
x = 5
print(f"x={x}") # imprime x=5

# a partir de python 3.8
x = 5
print(f"{x=}") # imprime x=5


Je trouve ce changement très utile pour débuguer notre code plus rapidement. D’ailleurs j’ai remarqué que cela fonctionne aussi pour des petites opéations: des méthodes, des fonctions, des attributs d’objets. Démonstration:

liste = [1, 2, 3]

print(f"{len(liste)=}") # imprime len(liste)=3

Python 3.8 Pour Anaconda. Pas de mise à jour ?

Si vous êtes un utilisateur d’Anaconda, c’est tout a fait normal si vous n’avez pas encore vu cette mise à jour arriver ! Anaconda attend toujours quelques temps avant de mettre en place les mises à jours pour éviter tout problème de compatibilité.

Cependant, ne vous en faites pas, beaucoup de gens vont encore utiliser Python 3.7 pendant des semaines, voire des mois ! De plus, vous n’avez pas besoin de Python 3.8 pour continuer à travailler sur vos projets actuels !

Quand la mise à jour sera disponible, vous pourrez l’effectuer en ouvrant le terminal Anaconda et en tapant la commande suivante:

conda install python=3.8

Cet article a 6 commentaires

  1. Endrick

    Je suis assez surpris du premier changement sur le walrus, je croyais qu’on pouvait déjà le faire dans le python d’origine avec l’opérateur « = ». Mais bon, j’ai dû me tromper !!! C’est bon à savoir.

    Suis sceptique pour le changement 2, je ne vois pas ce que ça apporte comme valeur ajoutée mis à part rendre le langage plus complexe. Je ne pense pas que je vais utiliser celui-là.

    Troisième changement : Trop bizarre ce truc !!!

    Merci, pour ce bon article Guillaume qui nous permet d’être rapidement informés des changements de python. Désolé pour le commentaire un peu négatif que je laisse, je suis pas grand Fan de ce genre de mise à jour. Surtout que pour l’instant je n’ai rien vu que je voudrais utiliser. Sinon très bon article, bien rédigé, il va à l’essentiel.

    1. Guillaume Saint-Cirgue

      Merci Endrick ! Les changements ne sont pas très importants, si vous n’en avez pas besoin, vous ne les utiliserez tout simplement pas. Et quand vous verrez des gens les utiliser, alors vous comprendrez pourquoi. C’est la seule chose qui importe !

  2. lee

    Bonjour Guillaume
    tes cours sont vraiment clairs !! mais je n’arrive pas à charger les bases de données (titanic etc..) sous Jupiter
    je fais bien import pandas as pd … puis pd.read_excel(titanic3.xls) mais la console répond ne pas reconnaitre pd
    not define ??? peux tu m’aider STP ?

    merci d’avance

    Roger

    1. Guillaume Saint-Cirgue

      Salut ! Pour commencer, il faut mettre le fichier .csv dans ton repertoire de travail Jupyter. Pour cela, dans le menu Jupyter, tu as un bouton en haut a droite qui indique “upload” et a partir de la tu peux charger ton fichier pour le placer dans le meme dossier ou ton code est présent.

  3. Adam

    Bonjour Guillaume
    Je suis vos cours de phyton sur YouTube
    J’aimerais simplement vous dire si vous pouviez METTRE UN SUPPORT PDF des vidéos de photon.

    Merci pour ce que vous fêtes

  4. adam39

    Bonsoir
    je suis vos vidéos sur youtube et j’aimerais juste vous demander si vous pouviez mettre UN SUPPORT PDF de ces vidéos.

    Merci pour ce que vous faites

Laisser un commentaire