Outils pour utilisateurs

Outils du site


issue169: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
issue169:python [2021/06/04 11:55] auntieeissue169:python [2021/06/05 16:10] (Version actuelle) andre_domenech
Ligne 3: Ligne 3:
 So this month, I will show you how to use the bext library to control the screen in a terminal window, similar to the curses library, but this will also work on Microsoft Windows as well.** So this month, I will show you how to use the bext library to control the screen in a terminal window, similar to the curses library, but this will also work on Microsoft Windows as well.**
  
-Comme d'habitude, mon esprit et le monde se préoccupaient d'autres chose et ma rubrique « Python dans le monde réel » (à nouveau, comme d'habitude) a fini par être l'élément de la liste des tâches qui est tombé jusqu'en bas. Je me suis TELLEMENT concentré sur les micro-contrôleurs et MicroPython, que le temps m'a échappé (à nouveau, comme d'habitude) et le moment est maintenant venu pour moi d'écrire l'article du côté de Python.+Comme d'habitude, mon esprit et le monde se préoccupaient d'autres choses et ma rubrique « Python dans le monde réel » (à nouveau, comme d'habitude) a fini par être celle des tâches qui est tombée jusqu'en bas de la liste. Je me suis TELLEMENT concentré sur les micro-contrôleurs et MicroPython, que le temps m'a échappé (à nouveau, comme d'habitude) et le moment est maintenant venu pour moi d'écrire l'article du côté de Python.
  
-Ainsi, ce mois-ci, je vous montrerai comment utiliser la bibliothèque bext pour contrôler l'écran dans une fenêtre du terminal ; c'est similaire à la bibliothèque curses, mais fonctionnera également sur Microsoft Wndows.+Ainsi, ce mois-ci, je vous montrerai comment utiliser la bibliothèque bext pour contrôler l'écran dans une fenêtre du terminal ; c'est similaire à la bibliothèque curses, mais cela fonctionnera également sur Microsoft Wndows.
  
 **What is bext? **What is bext?
Ligne 21: Ligne 21:
 Qu'est-ce que bext ? Qu'est-ce que bext ?
  
-C'après la page d'accueil de son site Web, on utilise Bext « si l'on veut pouvoir bouger le curseur dans la fenêtre du terminal et avoir du texte plein de couleurs, comme une sort de module curses limité (mais il fonctionne aussi sous Windows)»+D'après la page d'accueil de son site Web, on utilise Bext « si l'on veut pouvoir bouger le curseur dans la fenêtre du terminal et avoir du texte plein de couleurs, comme une sorte de module curses limité (mais il fonctionne aussi sous Windows) ».
  
-Puisque de plus en plus d'applications vont vers une interface graphique, l'utilisation de graphiques « raffinées » dans une fenêtre du terminal devient de plus en plus rare. Toutefois, il y a des choses à dire en faveur de la capacité de contrôler le curseur facile, de bien placer le texte et même decolorier le texte à l'intérieur d'un programme en ligne de commande.+Puisque de plus en plus d'applications passent à une interface graphique, l'utilisation d'un affichage graphique « raffiné » dans une fenêtre du terminal devient de plus en plus rare. Toutefois, il y a des choses à dire en faveur de la capacité de contrôler facilement le curseur, de bien placer le texte et même de colorier le texte à l'intérieur d'un programme en ligne de commande.
  
-Pour installer bext, tout ce qu'il faut faire est d'utiliser pip (ou pip3)...+Pour installer bext, tout ce qu'il faut faire est d'utiliser pip (ou pip3) :
  
 pip install bext pip install bext
Ligne 41: Ligne 41:
 Projet de programme n° 1 Projet de programme n° 1
  
-D'abord, un petit avertissement sur l'exécution de projets qui utilisent bext dans votre IDE. Puisque bext contrôle les positions et les couleurs dans un terminal, celui utilisé par votre IDE pourrait ne pas fonctionner correctment. S'il s'avère que vous utiliser VS Code, les programmes fonctionneront, mais il faut vous souvenir de cliquer à l'intérieur du terminal en bas de la fenêtre du Code. Si vous utilisez Geany, bext fonctionnera aussi, mais la fenêtre du terminal défilera sans doute au dela de la véritable sortie du programme. Je n'ai pas essayé IDLE, mais je suppose qu'il ne fonctionnera pas. Aussi, créez votre programme dans votre IDE normal, puis ouvrez une fenêtre du terminal pour tester le programme à partir de la ligne de commande. Vous trouverez ci-dessous le code pour notre premier programme bext...+D'abord, un petit avertissement sur l'exécution de projets qui utilisent bext dans votre IDE. Puisque bext contrôle les positions et les couleurs dans un terminal, celui utilisé par votre IDE pourrait ne pas fonctionner correctement. S'il s'avère que vous utilisez VS Code, les programmes fonctionneront, mais il faut vous souvenir de cliquer à l'intérieur du terminal en bas de la fenêtre du code. Si vous utilisez Geany, bext fonctionnera aussi, mais la fenêtre du terminal défilera sans doute au-delà de la véritable sortie du programme. Je n'ai pas essayé IDLE, mais je suppose qu'il ne fonctionnera pas. Aussi, créez votre programme dans votre IDE normal, puis ouvrez une fenêtre du terminal pour tester le programme à partir de la ligne de commande. Vous trouverez ci-dessous le code pour notre premier programme bext :
  
-Comme toujours, il faut importer bext. Puisque le programme ne fonctionnera pas sans elle, j'utiles un try | except pour contenir l'argument d'import. Comme cela, s'il échoue, l'utilisateur sait tout de suite pourquoi.+Comme toujours, il faut importer bext. Puisque le programme ne fonctionnera pas sans elle, j'utilise un try | except pour contenir l'argument d'import. Comme cela, s'il échoue, l'utilisateur sait tout de suite pourquoi.
  
-Ensuite, il faut faitre un peu de paramétrage. Nous commençons par régler la couleur de l'arrière-plan (background - bext.bg())) et celle du foreground (bext.fg()), puis nous vidons le terminal (bext.clear()). Quand vous réglez les couleurs de l'arrière-plan et de l'avant-plan, il n'y a que quelques options parmi lesquelles choisir. La liste des choix de couleur comporte noir, rouge, vert, jaune, bleu, violet, cyan, blanc, réinitialiser (reset) et aléatoire (random).+Ensuite, il faut faire un peu de paramétrage. Nous commençons par régler la couleur de l'arrière-plan (background - bext.bg())) et celle du foreground (bext.fg()), puis nous vidons le terminal (bext.clear()). Quand vous réglez les couleurs de l'arrière-plan et de l'avant-plan, il n'y a que quelques options parmi lesquelles choisir. La liste des choix de couleur comporte noir, rouge, vert, jaune, bleu, violet, cyan, blanc, réinitialiser (reset) et aléatoire (random).
  
 **Then (next page, top right) we get the width and height of the terminal using bext.size(), since most terminal programs have the ability to change the width and height of the window. **Then (next page, top right) we get the width and height of the terminal using bext.size(), since most terminal programs have the ability to change the width and height of the window.
Ligne 53: Ligne 53:
 We use the bext.goto() command which takes two parameters, x position (column position) and y position (line of the terminal). Save the program to “bext_demo1.py”. When you run the program in a terminal, it should look something like this…** We use the bext.goto() command which takes two parameters, x position (column position) and y position (line of the terminal). Save the program to “bext_demo1.py”. When you run the program in a terminal, it should look something like this…**
  
-Ensuite (page suivante, en haut à droite), nous réglers la largeur et la hauteur du terminal avec bext.size (), puisque la plupart des programmes de terminal ont la capacité de modifier la largeur et la hauteur de la fenêtre.+Ensuite (page suivante, en haut à droite), nous réglerons la largeur et la hauteur du terminal avec bext.size(), puisque la plupart des programmes de terminal ont la capacité de modifier la largeur et la hauteur de la fenêtre.
  
-Remarquez que nous imprimons la largeur et la hauteur de l'écran du terminal. Une fois cela fait, nous devons imprimer sur la ligne suivante, pas sur la ligne du haut ; aussi, nous bougeons le curseur tout à fait à gauche de l'écran, la deuxième ligne (0,1), imprimons quelque chose, puis déplaçons le curseur à la colonne 10, rangé 6 et imprimons une autre ligne de test. Pour terminer, nous mettons le curseur sur la dernière ligne, position 0 et terminons le programme (le code se trouve en bas à gauche).+Remarquez que nous imprimons la largeur et la hauteur de l'écran du terminal. Une fois cela fait, nous devons imprimer sur la ligne suivante, pas sur la ligne du haut ; aussi, nous bougeons le curseur tout à fait à gauche de l'écran, sur la deuxième ligne (0,1), imprimons quelque chose, puis déplaçons le curseur à la colonne 10, rangée 6 et imprimons une autre ligne de test. Pour terminer, nous mettons le curseur sur la dernière ligne, position 0 et terminons le programme (le code se trouve en bas à gauche).
  
-Nous utilisons la commande bext.goto() qui prend deux paramètres, la position x (celle de la colonne) et la position y (la ligne du terminal). Sauvegardez le programme dans «bext_demo1.py ». Quand vous lancez le programme dans un terminal il doit ressembler à quelque chose comme ceci...+Nous utilisons la commande bext.goto() qui prend deux paramètres, la position x (celle de la colonne) et la position y (la ligne du terminal). Sauvegardez le programme dans « bext_demo1.py ». Quand vous lancez le programme dans un terminalil doit ressembler à quelque chose comme ceci :
  
 **If you happen to be using Gnome Terminal, you can change the size of the terminal by clicking Terminal from the main menu and then the size of the terminal window. I’m sure that most other terminals have the same sort of option. **If you happen to be using Gnome Terminal, you can change the size of the terminal by clicking Terminal from the main menu and then the size of the terminal window. I’m sure that most other terminals have the same sort of option.
Ligne 68: Ligne 68:
 Program Project #2** Program Project #2**
  
-Si vous utilisez Gnome Terminal, vous pouvez changer la taille du terminal en cliquant sur Terminal dans le menu principal, puis sur la taille de la fenêtre du terminal. Je suis certain que la plupart des autres terminaux le même type d'option+Si vous utilisez Gnome Terminal, vous pouvez changer la taille du terminal en cliquant sur Terminal dans le menu principal, puis sur la taille de la fenêtre du terminal. Je suis certain que la plupart des autres terminaux ont le même type d'option.
  
-Bext n'a que quelques commande et vous pouvez en trouver une liste sur la page d'acceuile de bext à https://github.com/asweigart/bext.+Bext n'a que quelques commandes et vous pouvez en trouver une liste sur la page d'accueil de bext à https://github.com/asweigart/bext.
  
 Maintenant que vous avez une très basique compréhension de la bibliothèque bext, avançons à quelque chose d'un peu plus compliqué. Maintenant que vous avez une très basique compréhension de la bibliothèque bext, avançons à quelque chose d'un peu plus compliqué.
Ligne 84: Ligne 84:
 Now (below) we’ll create a function to take a string, decide how to center it based on the width of the terminal window, and print it at the proper position.** Now (below) we’ll create a function to take a string, decide how to center it based on the width of the terminal window, and print it at the proper position.**
  
-Si vous pouvez vous souvenir de l'atterissage sur la lune (1969), vous vous souviendrez des terminaux qu'il fallait utiliser en ce temps-là. Si non, il n'y avait pas de téléphones portable, pas d'ordinateurs personnels et pas d'Internet. À l'époque, les ordinateurs étaient tous des ordinateurs centraux et l'accès s'y faisait via des terminaux de série c'est-à-dire tour simplement un clavier et un moniteur CRT. L'arrière-plan des moniteurs était noir et le texte vert (d'habitude). Il n'y avait pas de souris et les programmes devaient imprimer une « forme » sur l'écran puis régler le curseur à la bonne postion X,Y pour l'entrée. Une fois que l'opérateur du terminal entré les informations correctes (avec un peu de chance), il ou elle utilisait la touche <ENTRÉE> pour se déplacer à la position suivante sur l'écran et le tout se répétait jusqu'à ce que toutes les informations soient entrées. Le programme que nous allons créer émule une toute petite version de cela.+Si vous pouvez vous souvenir de l'atterissage sur la lune (1969), vous vous souviendrez des terminaux qu'il fallait utiliser en ce temps-là. Sinon, il n'y avait pas de téléphones portables, pas d'ordinateurs personnels et pas d'Internet. À l'époque, les ordinateurs étaient tous des ordinateurs centraux et l'accès s'y faisait via des terminaux sériec'est-à-dire tout simplement un clavier et un moniteur CRT. L'arrière-plan des moniteurs était noir et le texte vert (d'habitude). Il n'y avait pas de souris et les programmes devaient imprimer une « forme » sur l'écran puis régler le curseur à la bonne postion X,Y pour l'entrée. Une fois que l'opérateur du terminal avait entré les informations correctes (avec un peu de chance), il ou elle utilisait la touche <ENTRÉE> pour se déplacer à la position suivante sur l'écran et le tout se répétait jusqu'à ce que toutes les informations soient entrées. Le programme que nous allons créer émule une toute petite version de cela.
  
-Cette fois-ci, nous allons importer la bibliothèque bext de façon simple+Cette fois-ci, nous allons importer la bibliothèque bext de façon simple.
  
 import bext import bext
Ligne 99: Ligne 99:
 Maintenant (en haut et à droite de la page suivante), nous créons quelques listes qui contiendront les positions X,Y pour chaque invite dans la forme, le texte qui sera imprimé pour chacune, et les positions X,Y du curseur pour qu'il reçoive les entrées. Maintenant (en haut et à droite de la page suivante), nous créons quelques listes qui contiendront les positions X,Y pour chaque invite dans la forme, le texte qui sera imprimé pour chacune, et les positions X,Y du curseur pour qu'il reçoive les entrées.
  
-Maintenant (ci-dessous), nous créons une fonction pour gérer l'entrée de chaque donnée. Nous utiliserons tout simplement la fonction input() pour ce faire...+Maintenant (ci-dessous), nous créons une fonction pour gérer l'entrée de chaque donnée. Nous utiliserons tout simplement la fonction input() pour ce faire :
  
-Remarquez que, avant d'appeler la fonction GetEntry() pour obtenir les données, nous appelons la fonction SetUpScreen() à nousveau, mais cette fois-ci, nous passons un True (Vrai) pour inverser les couleurs pour chaque champ d'entrée.+Remarquez que, avant d'appeler la fonction GetEntry() pour obtenir les données, nous appelons la fonction SetUpScreen() à nouveau, mais cette fois-ci, nous passons un True (Vrai) pour inverser les couleurs pour chaque champ d'entrée.
  
 **Save your program as “Bext_test1.py”, and run it in a terminal. It should look something like this… **Save your program as “Bext_test1.py”, and run it in a terminal. It should look something like this…
Ligne 113: Ligne 113:
 Until next time, as always; stay safe, healthy, positive and creative!** Until next time, as always; stay safe, healthy, positive and creative!**
  
-Sauvegardez votre protramme comme « Bext_test1.py » et lancez-le dans un terminal. Il devrait ressembler à ceci...+Sauvegardez votre programme comme « Bext_test1.py » et lancez-le dans un terminal. Il devrait ressembler à ceci :
  
 Et voilà. Vous trouverez le code pour les deux projets dans mon dépôt github https://github.com/gregwa1953/FCM-169. Et voilà. Vous trouverez le code pour les deux projets dans mon dépôt github https://github.com/gregwa1953/FCM-169.
  
-Soit dite en passant, c'est Al Sweigart qui a écrit la bibliothèque bext. J'ai fait une critique de son noveau livre dans ce numéro du FCM.+Soit dit en passant, c'est Al Sweigart qui a écrit la bibliothèque bext. J'ai fait une critique de son nouveau livre dans ce numéro du FCM.
  
 Le mois prochain, nous regarderons comment extraire du texte d'un fichier PDF. Le mois prochain, nous regarderons comment extraire du texte d'un fichier PDF.
Ligne 123: Ligne 123:
 Jusqu'à la prochaine fois, comme toujours, restez prudent, en bonne santé, positif et créatif ! Jusqu'à la prochaine fois, comme toujours, restez prudent, en bonne santé, positif et créatif !
  
 +
 +//Page 34, encart en bas à droite, lignes noires au milieu ://
 +**Next, we’ll create a function that will set the colors for foreground and background, and take a parameter to invert those colors ( swap the foreground and background colors)**
 +
 +Ensuite nous créerons une fonction qui règlera les couleurs d'avant et d'arrière-plan et prendrons un paramètre pour inverser ces couleurs (échange des couleurs entre l'avant et l'arrière-plan). 
 +
 +//Page 35, encart en haut à droite, lignes noires au milieu ://
 +**At this point, we’ll create a function to fill the screen with our prompts.**
 +
 +Ici, nous créerons une fonction qui remplit l'écran avec nos invites.
 +
 +//Page 35, encart en bas à gauche, lignes noires au milieu ://
 +**Finally, we call our functions. Notice that we call SetUpScreen() with False as the parameter to set the text colors to a black background and green foreground.**
 +
 +Enfin nous appelons nos fonctions. Notez que nous appelons SetUpScreen() avec Falsecomme paramètre pour régler les couleurs du texte avec arrière-plan noir et texte vert.
issue169/python.1622800554.txt.gz · Dernière modification : 2021/06/04 11:55 de auntiee