About

Swaroop C H is 27 years of age. He graduated in B.E. (Computer Science) from PESIT, Bangalore, India. He has previously worked at Yahoo! and Adobe.

More about

Page
Personal tools
COLLECTION
Collection

Python fr:Entrées Sorties

From Notes

Jump to: navigation, search

Contents

[edit] Introduction

Il y a des cas où votre programme va interagir avec l'utilisateur. Par exemple, vous voulez faire saisir des valeurs à l'utilisateur et afficher ensuite des résultats. Nous pouvons faire cela en utilisant les fonctions input() et print() respectivement.

Pour l'affichage, nous pouvons utiliser les différentes méthodes de la classe str (chaîne de caractère). Par exemple, vous pouvez utiliser la méthode rjust pour justifier à droite une chaîne de caractère avec une largeur donnée. Voyez help(str) pour plus de détails.

Une autre type d'entrée/sortie est de traiter des fichiers. La possibilité de créer, lire et écrire des fichiers est essentielle dans de nombreux programmes et nous verrons cela dans le chapitre suivant.

[edit] Entrée de l'utilisateur

#!/usr/bin/python
# Nom de fichier : user_input.py
 
def reverse(text):
    return text[::-1]
 
def is_palindrome(text):
    return text == reverse(text)
 
something = input('Entrez votre texte : ')
if (is_palindrome(something)):
    print("Oui, c'est un palindrome")
else:
    print("Non, ce n'est pas un palindrome")

Résultat :

   $ python user_input.py
   Entrez votre texte : sir
   Non, ce n'est pas un palindrome
   
   $ python user_input.py
   Entrez votre texte : kayak
   Oui, c'est un palindrome
   
   $ python user_input.py
   Entrez votre texte : ressasser
   Oui, c'est un palindrome

Comment cela fonctionne :

Nous utilisons le slicing pour renverser le texte. nous avons déjà vu comment faire des slices à partir des séquences en utilisant le code seq[a:b] qui va de la position a à la position b. Nous pouvons aussi fournir un troisième argument qui détermine le pas du slicing. Le pas par défaut est de 1 ainsi il renvoie une partie continue du texte. Donner un pas négatif, c'est-à-dire -1 va retourner le texte.

La fonction input() prend une chaine de caractères en tant qu'argument et l'affiche à l'utilisateur. Ensuite il attend une saisie de l'utilisateur et de la touche return. Quand l'utilisateur a fait cela, la fonction input() va renvoyer ce texte.

Nous prenons un texte et le renversons. Si le texte renversé est le même que l'original, alors ce texte est un palindrome.

Exercice à la maison :

Vérifier si un texte est un palindrome en ignorant la ponctuation, les espaces et la casse. Par exemple, "Karine alla en Irak" est aussi un palindrome mais la version actuelle de notre programme dit le contraire. Pouvez-vous améliorer le programme ci-dessus pour qu'il reconnaisse ce palindrome?

[edit] Fichiers

Vous pouvez ouvrir et utiliser des fichiers en lecture ou en écriture en créant un objet de la classe file et en utilisant ses méthodes read, readline ou write de manière appropriée pour lire à partir de ou écrire dans le fichier. La capacité de lire ou écrire dans le fichier dépend de la manière dont le fichier a été ouvert. Enfin, quand vous avez fini de traiter le fichier, vous pouvez utiliser la méthode close pour dire à Python que vous avez fini.

Exemple:

#!/usr/bin/python
# Nom de fichier : using_file.py
 
poem = '''\
Programming is fun
When the work is done
if you wanna make your work also fun:
    use Python!
'''
 
f = open('poem.txt', 'w') # ouvre le fichier en écriture ('w'riting)
f.write(poem) # écrit le texte dans le fichier 
f.close() # ferme le fichier
 
f = open('poem.txt') # si le mode n'est pas indiqué, lecture par défaut ('r'ead)
while True:
    line = f.readline()
    if len(line) == 0: # une longueur de zéro indique fin de fichier
        break
    print(line, end='')
f.close() # ferme le fichier

Résultat :

   $ python using_file.py
   Programming is fun
   When the work is done
   if you wanna make your work also fun:
           use Python!

Comment cela fonctionne :

D'abord, ouvrez un fichier avec la fonction open et indiquez le nom du fichier et le mode dans lequel vous l'ouvrez. Ce mode peut être le mode en lecture (read) ('r'), le mode en écriture (write) ('w') ou le mode append ('a'). Nous pouvons aussi traiter un fichier plat (text file) ('t') ou un fichier binaire ('b'). Beaucoup d'autres modes sont disponibles et help(open) vous donnera plus de détails à leur sujet. Par défaut, open() considère le fichier comme un fichier 't'exte et l'ouvre en 'r'ead (lecture).

Dans notre exemple, nous ouvrons d'abord le fichier en écriture de fichier texte et utilisons la méthode write du fichier objet pour écrire dans le fichier et pour finir nous fermons (close) le fichier.

Ensuite, nous ouvrons à nouveau le même fichier en lecture. Nous ne précisons pas le mode, car 'read text file' est le mode par défaut. Nous lisons chaque ligne du fichier avec la méthode readline dans une boucle. Cette méthode renvoie une ligne complète incluant le caractère de retour à la ligne en fin de ligne. Quand une chaîne de caractères vide est renvoyée, cela signifie que nous avons atteint la fin du fichier et nous 'sortons (break)' de la boucle.

Par défaut, la fonction print() affiche le texte ainsi qu'un retour à la ligne automatique à l'écran. Nous supprimons cet retour à la ligne en indiquant end='' parce que la ligne lue du fichier se termine déjà par le caractère de retour à la ligne. Puis, nous fermons (close) le fichier.

Maintenant, vérifiez le contenu du fichier poem.txt pour confirmer que le programme a bien écrit dans et lu à partir de ce fichier.

[edit] Pickle

Python fournit un module standard appelé pickle avec lequel vous pouvez enregistrer n'importe quel objet Python dans un fichier et le re-accéder plus tard. On appelle cela enregistrer l'objet de manière persistante.

Exemple:

#!/usr/bin/python
# Nom de fichier : pickling.py
 
import pickle
 
# Le nom du fichier dans lequel nous stockerons l'objet
shoplistfile = 'shoplist.data'
# the list of things to buy 
shoplist = ['pomme', 'mangue', 'carotte']
 
# On écrit dans le fichier
f = open(shoplistfile, 'wb')
pickle.dump(shoplist, f) # on dumpe l'objet vers le fichier 
f.close()
 
del shoplist # on détruit la variable shoplist
 
# On lit à partir du stockage
f = open(shoplistfile, 'rb')
storedlist = pickle.load(f) # on charge l'objet à partir du fichier
print(storedlist)

Résultat :

   $ python pickling.py
   ['pomme', 'mangue', 'carotte']

Comment cela fonctionne :

Pour enregistrer un objet dans un fichier, nous devons d'abord ouvrir (open) le fichier en 'w'rite 'b'inary mode et ensuite appeler la fonction dump du module pickle. Ce process est appelé pickling.

Ensuite, nous récupérons l'objet en utilisant la fonction load du module pickle qui renvoie l'objet. Ce procédé est appelé unpickling.

[edit] Récapitulatif

Nous avons vu différents types d'entrées sorties, comment gérer des fichiers et l'utilisation du module pickle.

Nous allons maintenant voir le concept des exceptions.



Please add your comments by clicking on the 'Discussion' link in the left sidebar.