Outils pour utilisateurs

Outils du site


issue168:python

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
issue168:python [2021/05/04 11:46] d52frissue168:python [2021/05/07 12:15] (Version actuelle) auntiee
Ligne 15: Ligne 15:
  
 Voici le calendrier de publication à partir d'avril 2021 : Voici le calendrier de publication à partir d'avril 2021 :
-••3.10.0 alpha 7 : mardi 06-04-2021+••3.10.0 alpha 7 : mardi 06-04-2021.
 Attendu : Attendu :
 ••3.10.0 beta 1 : lundi 03-05-2021 (pas de nouvelles fonctionnalités au-delà de ce point). ••3.10.0 beta 1 : lundi 03-05-2021 (pas de nouvelles fonctionnalités au-delà de ce point).
-••3.10.0 beta 2 : Mardi 25-05-2021 +••3.10.0 beta 2 : Mardi 25-05-2021. 
-••3.10.0 beta 3 : jeudi 17-06-2021 +••3.10.0 beta 3 : jeudi 17-06-2021. 
-•• 3.10.0 beta 4 : samedi 10-07-2021 +••3.10.0 beta 4 : samedi 10-07-2021. 
-••3.10.0 candidate 1 : lundi 02-08-2021 +••3.10.0 candidate 1 : lundi 02-08-2021. 
-••3.10.0 candidate 2 : lundi 06-09-2021 (si nécessaire) +••3.10.0 candidate 2 : lundi 06-09-2021 (si nécessaire). 
-••3.10.0 final : Lundi 04-10-2021+••3.10.0 final : Lundi 04-10-2021.
  
  
Ligne 39: Ligne 39:
 •  PEP 634, PEP 635 Structural Pattern Matching** •  PEP 634, PEP 635 Structural Pattern Matching**
  
-Ce n'est pas parce qu'il reste plus de 5 mois avant la sortie de la nouvelle version que vous ne pouvez pas commencer à vous préparer et à vous enthousiasmer pour la nouvelle version à venir. Certains des changements qui sont censés arriver sont : +Ce n'est pas parce qu'il reste plus de 5 mois avant la sortie de la nouvelle version que vous ne pouvez pas commencer à vous préparer et à vous enthousiasmer pour la version à venir. Certains des changements qui sont censés arriver sont : 
-••PEP 604 - Permettre l'écriture des types d'union comme X | Y +••PEP 604 - Permettre l'écriture des types d'union comme X | Y. 
-••PEP 612 - Variables de spécification de paramètres +••PEP 612 - Variables de spécification de paramètres. 
-••PEP 626 - Numéros de ligne précis pour le débogage et autres outils +••PEP 626 - Numéros de ligne précis pour le débogage et autres outils. 
-••PEP 597 - Ajout d'un EncodingWarning optionnel +••PEP 597 - Ajout d'un EncodingWarning optionnel. 
-••PEP 618 - Ajout d'un contrôle de longueur optionnel pour zip +••PEP 618 - Ajout d'un contrôle de longueur optionnel pour zip. 
-••PEP 644 - Nécessite OpenSSL 1.1.1 ou plus récent +••PEP 644 - Nécessite OpenSSL 1.1.1 ou plus récent. 
-••PEP 632 - Dépréciation du module distutils +••PEP 632 - Dépréciation du module distutils. 
-••PEP 613 - Alias de types explicites+••PEP 613 - Alias de types explicites.
  
 Et j'ai gardé le meilleur pour la fin - Et j'ai gardé le meilleur pour la fin -
-••PEP 634, PEP 635 Correspondance de motifs structurels+••PEP 634, PEP 635 Correspondance de motifs structurels.
  
  
 **Each of the new features that are listed above have the PEP (Python Enhancement Proposals) numbers with them so you can easily do a web search for the ones you are interested in exploring. For the rest of the article, I will be discussing the new Pattern Matching feature. If you want to try out any of these things, hopefully you have pyenv installed. That way you can simply do a pyenv install 3.10-dev to play with version 3.10. There are other ways to try out 3.10, but honestly pyenv is the way to go! If you would rather check out another way, try looking at https://towardsdatascience.com/all-the-important-features-and-changes-in-python-3-10-e3d1fe542fbf and search for “Installing Alpha/Beta Version”. They provide a way to load version 3.10 alongside your existing Python version(s).** **Each of the new features that are listed above have the PEP (Python Enhancement Proposals) numbers with them so you can easily do a web search for the ones you are interested in exploring. For the rest of the article, I will be discussing the new Pattern Matching feature. If you want to try out any of these things, hopefully you have pyenv installed. That way you can simply do a pyenv install 3.10-dev to play with version 3.10. There are other ways to try out 3.10, but honestly pyenv is the way to go! If you would rather check out another way, try looking at https://towardsdatascience.com/all-the-important-features-and-changes-in-python-3-10-e3d1fe542fbf and search for “Installing Alpha/Beta Version”. They provide a way to load version 3.10 alongside your existing Python version(s).**
  
-Chacune des nouvelles fonctionnalités énumérées ci-dessus est associée à un numéro PEP (Python Enhancement Proposals - Propositions d'amélioration de Python). Vous pouvez donc facilement effectuer une recherche sur le Web pour trouver celles qui vous intéressent. Dans le reste de l'article, je parlerai de la nouvelle fonction Pattern Matching (Correspondance des motifs). Si vous voulez essayer l'une de ces fonctions, j'espère que vous avez installé pyenv. Ainsi, vous pouvez simplement faire un pyenv install 3.10-dev pour jouer avec la version 3.10. Il existe d'autres moyens d'essayer la version 3.10, mais honnêtement, pyenv est le meilleur moyen ! Si vous préférez essayer une autre méthode, consultez le site https://towardsdatascience.com/all-the-important-features-and-changes-in-python-3-10-e3d1fe542fbf et cherchez « Installing Alpha/Beta Version » (Installer une version Alpha/Bêta). Ils fournissent un moyen de charger la version 3.10 en même temps que votre/vos version(s) Python existante(s).+Chacune des nouvelles fonctionnalités énumérées ci-dessus est associée à un numéro PEP (Python Enhancement Proposals - Propositions d'amélioration de Python). Vous pouvez donc facilement effectuer une recherche sur le Web pour trouver celles qui vous intéressent. Dans le reste de l'article, je parlerai de la nouvelle fonction de Pattern Matching (Correspondance des motifs). Si vous voulez essayer l'une de ces fonctions, j'espère que vous avez installé pyenv. Ainsi, vous pouvez simplement faire un pyenv install 3.10-dev pour jouer avec la version 3.10. Il existe d'autres moyens d'essayer la version 3.10, mais honnêtement, pyenv est le meilleur moyen ! Si vous préférez essayer une autre méthode, consultez le site https://towardsdatascience.com/all-the-important-features-and-changes-in-python-3-10-e3d1fe542fbf et cherchez « Installing Alpha/Beta Version » (Installer une version Alpha/Bêta). Ils fournissent un moyen de charger la version 3.10 à côté de votre/vos version(s) Python existante(s).
  
  
Ligne 103: Ligne 103:
 Lorsqu'il s'exécute, il renvoie : Lorsqu'il s'exécute, il renvoie :
  
-Pas entre 1 et 10, inclus+pas entre 1 et 10, inclus
 1 est entre 1 et 5, inclus 1 est entre 1 et 5, inclus
 2 est entre 1 et 5, inclus 2 est entre 1 et 5, inclus
Ligne 123: Ligne 123:
 The typical text adventure drops the player in the middle of a forest (usually after a night of enjoying copious amounts of adult beverages), or into a dark room inside of a castle. Since Ronnie is Scotish and both sides of my family tree shares that same root, I’ll pick the first option for our adventure. We’ll make our player a male human (since we all know that female humans are smarter than to enjoy copious amounts of adult beverages, right?).** The typical text adventure drops the player in the middle of a forest (usually after a night of enjoying copious amounts of adult beverages), or into a dark room inside of a castle. Since Ronnie is Scotish and both sides of my family tree shares that same root, I’ll pick the first option for our adventure. We’ll make our player a male human (since we all know that female humans are smarter than to enjoy copious amounts of adult beverages, right?).**
  
-D'un autre côté, voyons un exemple de la façon dont cette nouvelle fonctionnalité peut être mise en valeur. Nous allons créer un jeu d'aventure textuel très simple et limité. Vous vous en souvenez certainement, sauf si vous avez moins de 30 ans.+D'autre part, voyons un exemple de la façon dont cette nouvelle fonctionnalité peut être mise en valeur. Nous allons créer un jeu d'aventure textuel très simple et limité. Vous vous en souvenez certainement, sauf si vous avez moins de 30 ans.
  
-Le jeu d'aventure textuel typique dépose le joueur au milieu d'une forêt (généralement après une nuit passée à boire de grandes quantités de boissons pour adultes), ou dans une pièce sombre à l'intérieur d'un château. Comme Ronnie est écossais et que les deux côtés de mon arbre généalogique ont la même racine, je vais choisir la première option pour notre aventure. Notre joueur sera un humain de sexe masculin (puisque nous savons tous que les femmes sont plus intelligentes que les hommes et qu'elles ne boivent pas de grandes quantités de boissons pour adultes, n'est-ce pas ?)+Le jeu d'aventure textuel typique dépose le joueur au milieu d'une forêt (généralement après une nuit passée à boire de grandes quantités de boissons pour adultes), ou dans une pièce sombre à l'intérieur d'un château. Comme Ronnie est Écossais et que les deux côtés de mon arbre généalogique ont la même racine, je vais choisir la première option pour notre aventure. Notre joueur sera un humain de sexe masculin (puisque nous savons tous que les femmes sont plus intelligentes que les hommes et qu'elles ne boivent pas de grandes quantités de boissons pour adultes, n'est-ce pas ?)
  
  
Ligne 134: Ligne 134:
 Maintenant, notre joueur se trouve dans une forêt et a un peu mal à la tête. Il ne peut se déplacer que dans quatre directions : nord, ouest, sud et est. Nous supposerons que les chemins qui s'offrent à lui ne le conduiront normalement pas dans un arbre. Il a déjà la gueule de bois, ne l'aggravons pas. Tout au long de son voyage, il tombera sur des objets tels qu'une épée, une hache, de l'or, de l'argent, des diamants, du silex et de l'acier pour allumer un feu, etc. Je ne serai pas assez gentil pour le laisser trouver de l'aspirine, juste parce qu'il doit souffrir un peu pour son laisser-aller de la soirée. Il est également possible qu'il rencontre un monstre ou deux. Maintenant, notre joueur se trouve dans une forêt et a un peu mal à la tête. Il ne peut se déplacer que dans quatre directions : nord, ouest, sud et est. Nous supposerons que les chemins qui s'offrent à lui ne le conduiront normalement pas dans un arbre. Il a déjà la gueule de bois, ne l'aggravons pas. Tout au long de son voyage, il tombera sur des objets tels qu'une épée, une hache, de l'or, de l'argent, des diamants, du silex et de l'acier pour allumer un feu, etc. Je ne serai pas assez gentil pour le laisser trouver de l'aspirine, juste parce qu'il doit souffrir un peu pour son laisser-aller de la soirée. Il est également possible qu'il rencontre un monstre ou deux.
  
-Maintenant que nous avons défini son monde, nous allons commencer à écrire du code. Nous devrons créer quelques listes pour gérer les objets du jeu que le joueur peut manipuler et pour « contenir » les objets qu'il a ramassés (ci-dessus).+Maintenant que nous avons plus ou moins défini son monde, nous allons commencer à écrire du code. Nous devrons créer quelques listes pour gérer les objets du jeu que le joueur peut manipuler et pour « contenir » les objets qu'il a ramassés (ci-dessus).
  
  
Ligne 147: Ligne 147:
 Dans la fonction work_command, nous utilisons la nouvelle fonction « match case ». Nous allons commencer assez simplement (en haut à droite).  Dans la fonction work_command, nous utilisons la nouvelle fonction « match case ». Nous allons commencer assez simplement (en haut à droite). 
  
-J'ai défini ici les variables globales que je pense pouvoir utiliser. Lorsque nous démarrons la section match case, nous configurons l'instruction match pour qu'elle regarde la commande qui a été séparée avec la commande .split(). De cette façon, les instructions de cas peuvent rechercher des commandes comme « quitter » ou « vers le Nord » et même des choses plus compliquées comme « prendre hâche ». Ajoutons un autre cas pour se déplacer vers le Nord.+J'ai défini ici les variables globales que je pense pouvoir être utilisées. Lorsque nous démarrons la section match case, nous configurons l'instruction match pour qu'elle regarde la commande qui a été séparée avec la commande .split(). De cette façon, les instructions de cas peuvent rechercher des commandes comme « quitter » ou « vers le Nord » et même des choses plus compliquées comme « prendre hache ». Ajoutons un autre cas pour se déplacer vers le Nord.
  
  
Ligne 202: Ligne 202:
 Vous avez actuellement 1 objet dans votre sac : Vous avez actuellement 1 objet dans votre sac :
    sac d'affaires    sac d'affaires
-   Hache+   hache
 ~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~
  
-Je dois être honnête avec vous, les exemples que j'ai fournis ici ne font qu'effleurer la surface de la fonction de correspondance des modèles structurels et sont très simplistes. Pour plus d'informations et d'exemples, vous pouvez consulter les sites Web suivants...+Je dois être honnête avec vous, les exemples que j'ai fournis ici ne font qu'effleurer la surface de la fonction de correspondance des modèles structurels et sont très simplistes. Pour plus d'informations et d'exemples, vous pouvez consulter les sites Web suivants :
  
 https://www.python.org/dev/peps/pep-0636/#adding-conditions-to-patterns https://www.python.org/dev/peps/pep-0636/#adding-conditions-to-patterns
Ligne 218: Ligne 218:
 Until next time, as always; stay safe, healthy, positive and creative!** Until next time, as always; stay safe, healthy, positive and creative!**
  
-Au fur et à mesure que les choses avancent dans la version bêta, je suis sûr que vous verrez une grande quantité d'informations sur le web à propos de toutes les fonctionnalités de la version 3.10 en particulier la fonctionnalité de correspondance de motifs.+Au fur et à mesure que les choses avancent dans la version bêta, je suis sûr que vous verrez une grande quantité d'informations sur le web à propos de toutes les fonctionnalités de la version 3.10en particulier la fonctionnalité de correspondance de motifs.
  
 Je mettrai le code Python que j'ai fourni dans l'article sur mon dépôt github à https://github.com/gregwa1953/FCM-168 (en anglais uniquement), et je rendrai le code du jeu d'aventure textuel plus proche de l'utilisable comme squelette pour vous si vous voulez apprendre. Je mettrai le code Python que j'ai fourni dans l'article sur mon dépôt github à https://github.com/gregwa1953/FCM-168 (en anglais uniquement), et je rendrai le code du jeu d'aventure textuel plus proche de l'utilisable comme squelette pour vous si vous voulez apprendre.
  
 Jusqu'à la prochaine fois, comme toujours ; restez en sécurité, en bonne santé, positif et créatif ! Jusqu'à la prochaine fois, comme toujours ; restez en sécurité, en bonne santé, positif et créatif !
 +
  
 //Encart de la page 25 en bas à droite :// //Encart de la page 25 en bas à droite ://
Ligne 300: Ligne 301:
  
 **global game_objects, possessions **global game_objects, possessions
-game_objects = ['Axe', 'Hammer', 'Sword', 'flint', +<nowiki>game_objects = ['Axe', 'Hammer', 'Sword', 'flint', 
-'steel', 'gold', 'silver', 'branch', '']+'steel', 'gold', 'silver', 'branch', '']</nowiki>
 possessions = ['bag of stuff']** possessions = ['bag of stuff']**
  
 global game_objects, possessions global game_objects, possessions
-game_objects = ['Hache', 'Marteau', 'Épée', 'Silex', +<nowiki>game_objects = ['Hache', 'Marteau', 'Épée', 'Silex', 
-'Acier', 'Or', 'Argent', 'Branche', '']+'Acier', 'Or', 'Argent', 'Branche', '']<:nowiki>
 possessions = ['Sac d'affaires'] possessions = ['Sac d'affaires']
  
Ligne 326: Ligne 327:
 match command.split(): match command.split():
 case["quit"]: case["quit"]:
-print("Au revoir!")+print("Au revoir !")
 quit_game() quit_game()
  
Ligne 357: Ligne 358:
 print('Vers le Sud') print('Vers le Sud')
 case 'Est': case 'Est':
-print('vers l'Est')+print('Vers l'Est')
 case 'Ouest': case 'Ouest':
-print('vers l'Ouest')+print('Vers l'Ouest')
 case 'go', *wth: case 'go', *wth:
 print(f'{wth} n'est pas supporté') print(f'{wth} n'est pas supporté')
Ligne 392: Ligne 393:
 print("~"*25)** print("~"*25)**
  
-case["prendre", obj] | ["ramasser", "up", obj] | ["soulever", obj]:+case["prendre", obj] | ["ramasser", obj] | ["soulever", obj]:
 if obj in game_objects: if obj in game_objects:
 print(f"prendre {obj}") print(f"prendre {obj}")
issue168/python.1620121568.txt.gz · Dernière modification : 2021/05/04 11:46 de d52fr