Outils pour utilisateurs

Outils du site


issue170: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
issue170:python [2021/06/28 08:47] d52frissue170:python [2021/06/29 18:04] (Version actuelle) auntiee
Ligne 2: Ligne 2:
  
 Now the reason I am mentioning this is because, on today’s update session, he asked if I had ever used PtPython.  I honestly said no, and he proceeded to demo it for me and I was immediately impressed.  (Note that I’m fairly easy to impress, so that’s not a big thing.)  While he was showing me what it can do, I grabbed my smartphone and looked it up.  I decided right then and there to use it as my article for this month.** Now the reason I am mentioning this is because, on today’s update session, he asked if I had ever used PtPython.  I honestly said no, and he proceeded to demo it for me and I was immediately impressed.  (Note that I’m fairly easy to impress, so that’s not a big thing.)  While he was showing me what it can do, I grabbed my smartphone and looked it up.  I decided right then and there to use it as my article for this month.**
 +
 +Comme beaucoup d'entre vous le savent, je travaille en étroite collaboration avec Don Rozenberg, l'auteur de PAGE. Pendant plus de 10 ans, nous avons communiqué strictement par courriel. Jusqu'à ces 30 derniers jours environ. Maintenant, nous profitons du chat vidéo Discord (voix seulement (mon choix)) et du partage d'écran. Cela rend nos communications et notre collaboration extrêmement productives. Le dialogue immédiat est génial, et nous parvenons à faire une tonne de choses et à en discuter, et surtout, comme c'est en direct, la compréhension est immédiate. Je ne peux pas vous dire combien de fils de mails nous avons écrits où l'un ou l'autre d'entre nous ne comprenait pas bien un problème sans qu'il y ait 5 allers-et-retours de mails ou plus.  Étant donné le problème des fuseaux horaires, il arrive souvent qu'il faille 3 ou 4 jours pour régler un problème ou une idée. Maintenant, il peut voir ce que je fais et je peux voir ce qu'il fait. Si vous n'avez jamais essayé Discord et le partage d'écran/la session vocale, vous vous devez de trouver quelqu'un avec qui l'essayer. Ce n'est pas la chose la plus intuitive du monde, mais avec un peu de patience, il est facile de se mettre rapidement à niveau.
 +
 +La raison pour laquelle je mentionne ceci est que, lors de la session de mise à jour d'aujourd'hui, il m'a demandé si j'avais déjà utilisé PtPython. J'ai répondu honnêtement que non, et il a procédé à une démonstration pour moi et j'ai été immédiatement impressionné. (Notez que je m'impressionne facilement et que ce n'est donc pas grand' chose.) Pendant qu'il me montrait ce que le logiciel peut faire, j'ai pris mon smartphone et j'ai fait des recherches. J'ai décidé à ce moment-là de l'utiliser pour mon article de ce mois-ci.
 +
  
 **You can find the home page for PtPython at https://github.com/prompt-toolkit/ptpython.   **You can find the home page for PtPython at https://github.com/prompt-toolkit/ptpython.  
Ligne 20: Ligne 25:
  
 The first thing you might notice is that, unlike the “normal” Python REPL, it doesn’t start with the version number.  That, you can find in the bottom right of the window.** The first thing you might notice is that, unlike the “normal” Python REPL, it doesn’t start with the version number.  That, you can find in the bottom right of the window.**
 +
 +Vous trouverez la page d'accueil de PtPython à l'adresse https://github.com/prompt-toolkit/ptpython.  
 +
 +Je dois admettre que je déteste VRAIMENT le shell interactif Python ou REPL « normal ». Bien qu'il soit souvent très utile pour tester du code avant d'essayer de le faire fonctionner dans mon IDE, je le trouve très maladroit, surtout lorsque j'essaie de prototyper une fonction ou une boucle complexe. La plupart du temps, je me contente de travailler dans VS Code et si cela ne fonctionne pas, je place un point d'arrêt et je parcours mon code jusqu'à ce que je trouve l'endroit où je me suis trompé.
 +
 +L'une des raisons pour lesquelles j'étais si enthousiaste à propos de PtPython, c'est qu'il vous permet d'utiliser l'historique pour replacer une boucle ou une fonction entière dans le code actif et faire une modification rapide en cas de faute de frappe.
 +
 +Voyons comment utiliser PtPython. Tout d'abord, nous devons l'installer. Vous pouvez utiliser pip pour le faire :
 +
 +pip install ptpython
 +
 +Cependant, lorsque j'ai fait cela, j'ai reçu un certain nombre d'erreurs de dépendance. Donc, je l'ai désinstallé, j'ai téléchargé le dépôt sous forme de fichier zip, je l'ai décompressé et j'ai fait une installation python « à l'ancienne » à partir du dossier du dépôt :
 +
 +python setup.py install
 +
 +Puis je l'ai installé à nouveau via pip et tout semblait fonctionner.
 +
 +La première chose que vous pouvez remarquer, c'est que, contrairement au REPL Python « normal », il ne commence pas par le numéro de version. Celui-ci se trouve en bas à droite de la fenêtre.
 +
  
 **Now this is where I started to kind of “choke up”.  I couldn’t for the life of me, come up with anything to try.  So, I did a simple test purposefully making a mistake… **Now this is where I started to kind of “choke up”.  I couldn’t for the life of me, come up with anything to try.  So, I did a simple test purposefully making a mistake…
Ligne 46: Ligne 70:
  
 Now that I’d gotten all that done, I started thinking to myself, “Self, what else can I do to show the goodies that ptpython has to offer?”  And I answered myself, “Well, Self, how about showing off the PyWebIO library at the same time you show off the ptpython?”.  Who am I to argue with myself, right?  So, here we go.** Now that I’d gotten all that done, I started thinking to myself, “Self, what else can I do to show the goodies that ptpython has to offer?”  And I answered myself, “Well, Self, how about showing off the PyWebIO library at the same time you show off the ptpython?”.  Who am I to argue with myself, right?  So, here we go.**
 +
 +C'est là que j'ai commencé à m'étouffer. Je n'arrivais pas du tout à trouver quelque chose à essayer. Donc, j'ai fait un test simple en faisant exprès de faire une erreur :
 +
 +>>> a = 3
 +>>> b = 2
 +>>> for cntr in range(a) :
 +... for cntr2 in range(b) :
 +... print(f'{a} - {b}')
 +3 - 2
 +3 - 2
 +3 - 2
 +3 - 2
 +3 - 2
 +3 - 2
 +>>>  
 +
 +Au lieu d'imprimer les valeurs de cntr et cntr2, je lui ai dit d'imprimer a et b. Pour corriger l'erreur, j'ai simplement appuyé sur la touche de déplacement vers le haut. Le programme a alors inséré ma boucle complète.
 +J'ai ensuite utilisé la flèche gauche et remplacé le « a » par « cntr » et le « b » par « cntr2 ».
 +
 +J'ai ensuite appuyé deux fois sur {enter} et le résultat est tel que je le voulais.
 +C'est beaucoup mieux. ET BEAUCOUP plus facile que de le faire avec le REPL standard.
 +
 +Alors que je me préparais à faire la prochaine section ci-dessous, je me suis souvenu qu'il y a une autocomplétion déjà intégrée dans ptpython.  Par exemple :
 +Et une coche de plus en faveur de ptpython !
 +
 +Maintenant que j'ai fait tout ça, j'ai commencé à me dire : « Dis, qu'est-ce que tu peux faire d'autre pour montrer les petits plus que ptpython offre ? »  Et je me suis répondu : « Eh bien, que dirais-tu de montrer la bibliothèque PyWebIO tout en présentant ptpython ? » Qui suis-je pour me contredire, n'est-ce pas ? Donc, nous y voilà.
 +
  
 **PyWebIO **PyWebIO
Ligne 66: Ligne 117:
  
 ** **
 +
 +PyWebIO
 +
 +Selon leur site web https://github.com/wang0618/PyWebIO
 +
 +« PyWebIO fournit une série de fonctions impératives pour obtenir l'entrée et la sortie de l'utilisateur sur le navigateur, transformant le navigateur en un « terminal de texte riche », qui peut être utilisé pour construire des applications Web simples ou des applications avec interface graphique basées sur le navigateur sans devoir avoir des connaissances en HTML et JS. »
 +
 +Je suis tombé sur cette bibliothèque en essayant de suivre l'actualité de Python tout en m'occupant d'autres choses. Je n'étais pas vraiment sûr du moment où j'allais pouvoir vous la montrer, mais comme on disait autrefois « Il n'y a pas de présent comme l'heure ».  Eh bien, ILS le disent différemment, mais j'aime être différent.
 +
 +Donc, pour l'installer, il suffit d'utiliser pip :
 +
 +pip3 install pywebio
 +
 +Et vous êtes prêt à y aller.
 +
 +Maintenant dans ptpython, faites un import du paquet :
 +
 +>>> from pywebio.output import *
 +
 +
  
 **Now, I’m going to try to recreate the terminal animation that they have on their website. **Now, I’m going to try to recreate the terminal animation that they have on their website.
Ligne 74: Ligne 145:
  
 Easy enough, right?  Now, let’s do something a bit fancier… Easy enough, right?  Now, let’s do something a bit fancier…
- 
- 
- 
  
 >>> put_table([ >>> put_table([
Ligne 91: Ligne 159:
  
 >>> put_image(open('FullCircleLogo.jpg','rb').read());** >>> put_image(open('FullCircleLogo.jpg','rb').read());**
 +
 +Maintenant, je vais essayer de recréer l'animation du terminal qu'ils ont sur leur site Web.
 +
 +>>> put_text("Hello World !") ;
 +
 +Lorsque vous faites cela, votre navigateur Web par défaut devrait s'ouvrir et vous montrer :
 +
 +C'est assez simple, non ?  Maintenant, faisons quelque chose d'un peu plus sophistiqué :
 +
 +>>> put_table([
 +...     ['Product', 'Prix'],
 +...     ['Apple', '$5.5'],
 +...     ['Banner', '$7'],
 +... ]) ;
 +>>>
 +
 +Et la fenêtre de votre navigateur sera mise à jour pour afficher :
 +
 +Ces pommes-là sont vachement chères, mais elles permettent de faire passer le message. Les tableaux sont VRAIMENT faciles. Remarquez qu'il a automatiquement mis les en-têtes en gras.
 +
 +Nous pouvons même, facilement, mettre un logo sur la page Web :
 +
 +>>> put_image(open('FullCircleLogo.jpg', 'rb').read()) ;
 +
  
 **You can even put interactive buttons on your web page… **You can even put interactive buttons on your web page…
Ligne 111: Ligne 203:
  
 Until next time, as always; stay safe, healthy, positive and creative!** Until next time, as always; stay safe, healthy, positive and creative!**
 +
 +Vous pouvez même mettre des boutons interactifs sur votre page Web :
 +
 +>>> def on_click(btn) :
 +
 +...    put_markdown("Vous avez cliqué sur le '%s' bouton" % btn)
 +
 +>>>
 +
 +>>> put_buttons(['A', 'B', 'C'], onclick=on_click) ;
 +
 +>>>
 +
 +Ce qui montre trois boutons, comme nous l'avons demandé. Lorsque vous cliquez sur chacun d'eux, voici ce à quoi ça ressemblera :
 +
 +Il y a tellement plus de choses qui peuvent être faites avec ces deux paquets, que votre seule limite est votre imagination.
 +
 +L'article de ce mois-ci va vraiment stresser Ronnie pour que tout soit aligné, donc je pense que c'est une bonne idée que je m'arrête. (Je préfère aligner des images plutôt que d'essayer d'aligner tous ces bouts de code habituels ! - Ronnie.)
 +
 +Jusqu'à la prochaine fois, comme toujours : restez en sécurité, en bonne santé, positif et créatif !
 +
issue170/python.1624862837.txt.gz · Dernière modification : 2021/06/28 08:47 de d52fr