• Aucun résultat trouvé

Écrivons

Dans le document Domptage de serpent pour les enfants (Page 85-91)

7.4 Écrivons

En Python ! (rime faible)

Nous avons déjà créé un objet « file »  dans la section précédente, en utilisant Python : ne pas saisir

Un objet « file »  n’a pas seulement une fonction « read » . Après tout, un fiier ne serait pas très utile si on pouvait seulement prendre des fies mais ne jamais en rajouter.

Nous pouvons créer un nouveau fiier vide en passant un autre paramètre à la fonction

« open » .

Contrôlez d’abord qu’il n’existe pas de fiier « nouveau.txt »  sur votre bureau. Si cela est le cas vous pouvez soit le renommer (par exemple en « ancien.txt »  , soit anger

« nouveau.txt »  en ce que vous voulez dans les exemples qui suivent. Enfin, une fois ce contrôle effectué, vous pouvez essayer le code suivant :

à taper par exemple en reprenant l'existant import os,platform

Exécutez ce programmes puis regardez sur votre bureau, un fiier « nouveau.txt »  vient d’être créé. Le paramètre « w »  (pourwrite, écrire en anglais) est utilisé pour indiquer à Python que nous voulons écrire dans un (nouveau) fiier. Si le fiier n’existe pas il est créé, s’il existe son contenu est détruit.

Nous pouvons maintenant utiliser la fonction « write » . Une fois que nous aurons écrit il convient d’indiquer à Python que nous ne désirons plus écrire dans le fiier en utilisant la fonction « close »  (closesignifie fermer en anglais). Notez au passage qu’il est de bon ton d’utiliser aussi la fonction « close »  quand on finit d’utiliser un fiier.

à taper par exemple en reprenant l'existant import os,platform

def chemin_bureau() :

if platform.release()=='XP' :

return os.path.join(os.environ['USERPROFILE'],"Bureau") else :

return os.path.join(os.environ['USERPROFILE'],"Desktop") fichier = open(os.path.join(chemin_bureau(),'nouveau.txt'),'w') fichier.write('''Ceci est un fichier de test.

Ce fichier s'étend sur plusieurs lignes.

Trois en fait !''') fichier.close()

Si vous ouvrez le fiier avec votre éditeur de texte favori (le bloc note à priori) vous verrez qu’il contient le texte :

contenu de nouveau.txt Ceci est un fichier de test.

Ce fichier s'étend sur plusieurs lignes.

Trois en fait !

Ou mieux encore nous pouvons utiliser Python pour lire ce texte : à taper par exemple en reprenant l'existant import os,platform

def chemin_bureau() :

if platform.release()=='XP' :

return os.path.join(os.environ['USERPROFILE'],"Bureau") else :

return os.path.join(os.environ['USERPROFILE'],"Desktop") fichier = open(os.path.join(chemin_bureau(),'nouveau.txt'),'w') fichier.write('''Ceci est un fichier de test.

Ce fichier s'étend sur plusieurs lignes.

Trois en fait !''') fichier.close()

fichier = open(os.path.join(chemin_bureau(),'nouveau.txt')) print(fichier.read())

fichier.close

À ce point quelque ose pourrait vous surprendre : le résultat de la commande ci-dessus reste nos trois lignes. Or nous avons écritdeux fois dans le fiier. e s’est-il passé ?

7.4. ÉCRIVONS EN PYTHON ! (RIME FAIBLE) 81

L’ouverture en mode « w »  indique que nous souhaitons écrire en écriture à partir de zéro. Le contenu initial du fiier a été détruit. Nous pouvons modifier le « w »  en « a »  pour append qui signifie ajouter en anglais.

à taper par exemple en reprenant l'existant import os,platform fichier.write('''Ceci est un fichier de test.

Ce fichier s'étend sur plusieurs lignes.

Trois en fait !''') fichier.close()

fichier = open(os.path.join(chemin_bureau(),'nouveau.txt')) print(fichier.read())

fichier.close

Si nous exécutons ce programme le résultat devrait être : résultat en mode ajout Ceci est un fichier de test.

Ce fichier s'étend sur plusieurs lignes.

Trois en fait !Ceci est un fichier de test.

Ce fichier s'étend sur plusieurs lignes.

Trois en fait !

Bizarrement le résultat est sur cinq lignes et non pas six (deux fois trois). En fait quand nous saisissons le texte sur plusieurs lignes le caractère entrée que nous ne voyons pas est pris en compte. La dernière ligne ne finissait pas le caractère entrée et la première ne commençait pas par celui-ci. Nous pouvons modifier la aîne pour que les nouvelles lignes commencent par un retour à la ligne :

à taper fichier.write('''

Ceci est un fichier de test.

Ce fichier s'étend sur plusieurs lignes.

Trois en fait !''')

Notez bien que pour alléger la notation l’ensemble du code de votre fiier n’a pas été repris. Par ailleurs et pour information, le retour à la ligne peut aussi être saisi « \n » . Cee notation est simple à retenir : « \n »  comme nouvelle ligne.

Tortues à profusion 8

8.1 Le retour de la tortue

Revenons au module tortue que nous avions commencé à examiner au apitre 3 page 29. Nous allons examiner tout un ensemble de fonctions du module turtle.

Vous vous demandez peut-être comment avoir des informations sur toutes ces com-mandes, en fait Python inclut une aide interne (sans parler de l’aide disponible dans le menu démarrer). Vous pouvez faire « dir(turtle) » pour avoir la liste de toutes les commandes inclues dans turtle. La commande « dir » est disponible pour tous les modules. De plus les modules bien développés incluent une aide en ligne par exemple « help(turtle.Pen()) ».

Cee aide est en anglais, malheureusement pour les francophones. Néanmoins, cela pourrait être pire dans une langue dont vous ne comprendriez même pas les caractères. Vous pouvez essayer ces commandes dans la console ou le shell :

à taper

>>> dir(str)

>>> help(str.isalpha)

>>> import turtle

>>> dir(turtle)

>>> help(turtle.Pen)

Pour information, la méthode « isalpha » teste une aîne pour savoir si elle est com-posée de leres uniquement et renvoie vrai (True) ou faux (False).

Revenons, à nouveau, sur le module « turtle ». Rappelez-vous, pour affier une zone de dessin et dessiner dessus, nous avions besoin d’importer le module « turtle » et de créer un objet « Pen » :

ne pas saisir

>>> import turtle

>>> tortue = turtle.Pen()

À l’époque nous fermions la fenêtre en lançant « turtle.bye() ».

Maintenant que nous savons utiliser IDLE pour créer, exécuter et sauvegarder des pro-grammes nous ne souhaitons pas ouvrir une fenêtre de dessins a aque exécution, la com-mande « turtle.bye() » permerait de fermer la fenêtre dessin mais nous ne verrions

83

plus le résultat de nos programmes c’est pourquoi je vous propose d’utiliser la méthode

« turtle.exitonclick » (exit signifie sortie,onsignifie sur,cli signifie clic).

N’oubliez pas de créer une nouvelle fenêtre (new windowsdans le menu « File » d’IDLE ou de rouvrir un programme existant pour taper votre code.

à taper import turtle

tortue = turtle.Pen() tortue.forward(100) turtle.exitonclick

Lancez le programme (sauvez le sous le nom de votre oix finissant par « .py » si né-cessaire) puis cliquez sur la fenêtre de dessin pour quier le programme.

Nous pouvons maintenant utiliser des fonctions simples pour déplacer notre tortue sur le zone de dessin et dessiner des formes simples. Mais encore plus intéressant nous pouvons utiliser ce que nous avons appris dans les apitres précédents. Par exemple, le code que nous avions utilisé pour créer un carré était :

ne pas saisir

Nous pouvons maintenant le ressaisir en utilisant un itérateur : à taper

Ce qui fait neement moins à saisir, mais nous pouvons maintenant faire des oses un peu plus intéressantes. Essayez donc ce qui suit :

à taper

Ce code produit une étoile à huit branes comme montré sur la Figure 8.1 (la tortue tourne de 225 degrés puis avance de 100 pixels, huit fois).

Dans le document Domptage de serpent pour les enfants (Page 85-91)