Pour créer un programme interactif, il peut être souhaitable de laisser la possibilité à l'utilisateur de rentrer des données en cours d'exécution, après l'affichage d'une question par exemple.
from random import randintn = int(input("Combien de fois voulez-vous jouer à pile ou face ?\n"))k = 0for i in range(n):if randint(0, 1):k += 1print("Vous avez obtenu %d fois pile et %d fois face." % (k, n-k))
Il existe des bibliothèques supplémentaires permettant à un programme Python de prendre en compte des évènements liés au clavier (frappe de touches) ou à la souris (clics et mouvements), mais ces fonctionnalités sont plutôt à gérer dans le cadre d'une interface graphique.
Un programme Python peut interagir avec un fichier en lecture ou en écriture.
f = open('/home/moi/coffre.odt', 'r+') # ouverture en lecture et écriturecontenu = f.read() # récupération du contenuf.write("Avec les compliments d'Arsène Lupin.") # réécriture du fichier
La technique précédente est efficace pour analyser et sauvegarder des textes. Le module pickle fournit un encodage spécifique à Python pour enregistrer n'importe quel objet (par exemple une liste ou un objet structuré de grande taille) sous forme d'un fichier.
import picklef = open('/home/moi/biblio', 'r+')bib = pickle.load(f) # récupération d'un ancien fichier picklebib.append('La Page blanche') # ajout d'un élément à la liste chargéepickle.dump(bib, f) # enregistrement de la liste comme fichier
Sur un ordinateur muni d'un accès à Internet, certaines fonctions permettent de récupérer le contenu de pages web et même d'interroger des serveurs à distance.
from urllib.request import urlopenpage = urlopen('http://images.math.cnrs.fr/') # ouverture de la page sous forme de fichiercontenu = page.read() # lecture du code sourcepage.close() # fermeture du fichierprint(contenu) # affiche le code source de la page
Pour une page PHP avec données à transmettre par protocole POST (identifiants et mot de passe, par exemple), ces données sont à préciser avant l'ouverture de la page.
import urllibdata = urllib.parse.urlencode({'id': "Zébulon", 'passe': "Tournicoton"})page = urlopen('http://monsite.fr/connexion.php', data)
Le contenu d'une page peut ensuite être analysé à l'aide de html.parser ou de Beautiful Soup.
Il existe plusieurs bibliothèques permettant de développer une interface graphique. La plus utilisée est fournie par le module tkinter. Sur les systèmes Linux, ce module requiert le paquet python-tk ou python3-tk.
from tkinter import *fen = Tk() # création d'une fenêtretitre = Label(fen, text = "Ma première interface graphique")titre.pack() # placement du titrecan = Canvas(fen, bg='white', height=200, width=300) # zone de dessindef tache(ev):can.create_oval(ev.x-5, ev.y-5, ev.x+5, ev.y+5, fill='red')can.bind("<Button-1>", tache) # réaction au clic sur le dessincan.pack()def clear():can.delete(ALL)effaceur = Button(fen, text = "Effacer", command = clear)effaceur.pack(side = LEFT)exit = Button(fen, text = "Quitter", command = fen.quit)exit.pack(side = RIGHT)fen.mainloop() # maintien de la fenêtre jusqu'à fermeturefen.destroy() # suppression de la fenêtre