Conclusion du cours sur la faille input() de Python 2

Conclusion sur la faille input() de Python 2

Enfin, je vais vous donner un dernier conseil.
Si jamais vous décidez après cela de rester avec Python 3 et de ne plus utiliser Python 2 et sa fonction maudite, il se peut que vous ayez aussi un problème :

Le code suivant a été créé pour Python 3:

print( "Comment vous appellez vous ?" )

def BombLauncher() :  
    print( "BOMB LAUNCHED" ) #tout code qui demande le numéro de l’utilisateur se doit d’avoir son lanceur de bombe  (j’ai le droit de m’amuser un peu.. arrêtez de me juger )

a = input( "Ecrivez votre numero : " )

if a == 3630 :
    print("bonjour pere noel")

Comme vous pouvez le voir, si ce code a effectivement été créé pour Python 3, qu’est ce qui empêche Jean-Baptiste hacker d’exécuter votre programme sous Python 2 et d’ensuite accéder à votre fonction BombLauncher. Puis le code plantera parce que a vaudra alors None et que None n’a pas de méthode lower.

C’est pour cela que je disais que Python 3 se trouve impacté par Python 2.

Une solution possible serait d’utiliser des choses qui existent en Python3 et pas en Python2 au moins une fois (de sorte que le code plante : on peut faire par exemple un print(“message”, sep=” “) ce qui ne changera rien en Python 3 puisque sep est un paramètre indiquant quel sera le caractère séparant deux chaines de caractères concaténées, chose absente ici (et ” ” est la valeur par défaut de sep), mais en revanche provoquera une exception en Python 2).

Voilà le cours est terminé. J’espère que vous avez appris beaucoup de choses et que vous l’avez apprécié.

 

TOUT VOIR Ajouter une remarque
VOUS
Ajouter votre commentaire
Culte du code | 2015-2020  (Vecteurs par Freepik, Parallax par fullvector)