Séquence non modifiable d’éléments Les éléments d’un tuple ne peuvent pas être réassignés et on ne peut pas en ajouter ou en enlever
Définition d’un tuple avec () Parenthèses pas obligatoires lorsqu’au moins un
élément
# Tuple vide a = () # Tuples contenant un seul élément b = 1, c = (1,) # Tuples contenant trois éléments d = 1, 2, 3 e = (1, 2, 3)
Utilisation d’un tuple similaire à celle des listes
On peut emballer plusieurs valeurs dans un tuple Elles sont toutes accessibles à partir d’une seule variable
On peut déballer un tuple dans plusieurs variables Chaque variable reçoit la valeur d’un élément du tuple
t = 1, 2, 3 print(t) a, b, c = t print(a, b, c)
tuple,
list, str, …)enumerate() permet d’énumérer les éléments
d’une séquenceL = ['un', 'deux', 'trois'] print(enumerate(L)) # affiche <enumerate at 0x10035e570> print(list(enumerate(L))) # affiche [(0, 'un'), (1, 'deux'), (2, 'trois')]
forfor i, value in enumerate(L): print("l'élément d'indice", i, "est", value)
Importation d’un module:
import turtle turtle.forward(90) turtle.done()
Importation des fonctions d’un module:
from turtle import forward, done forward(90) done()
Pour importer toutes les fonctions, on utilise le *
(non recommandé):
from turtle import *
.py contenant des définitions
de fonctions.shape dans le
fichier shape.py.from turtle import color, up, down, goto, done def polygon(center, nbsides, radius, col='black'): # Dessiner un polygone régulier def square(center, radius, col='black'): polygon(center, 4, radius, col)
from turtle import color, up, down, goto, done from math import cos, sin, pi def polygon(center, nb_sides, radius, col="black"): x, y = center # déballage de séquence angle = 2 * pi / nb_sides up() goto(x + radius, y) down() color(col) for i in range(1, nb_sides+1): goto( x + radius * cos(i * angle), y + radius * sin(i * angle), ) def square(center, radius, col="black"): polygon(center, 4, radius, col)
from shape import square, polygone, done polygon((150, 150), 5, 100, 'red') square((-50, -50), 50, 'blue') done()
import égal exécution__name__La variable globale __name__ est définie dans chaque
fichier Python :
string égal au nom du
module."__main__".Pour qu’un module puisse aussi être exécuté comme un programme,
on teste souvent la variable __name__:
# ... if __name__ == "__main__": polygon((0, 0), 5, 200, 'blue') done()
stge.pystge.py: Utilisationimport stge def setup(): # cette fonction doit renvoyer # l'état initial de l'application return state def loop(state): # cette fonction reçoit l'état précédent # de l'application et renvoie l'état suivant return state stge.run(setup, loop)
stge.quit(): Termine l’applicationstge.size(): Renvoie la taille du terminalstge.write_at(): Affiche à une position déterminée du
terminalstge.keypresses(): Renvoie les touches appuyées depuis
la dernière framestge.pixels(): Affiche une grille de pixels en
utilisant le caractère “demi-bloc”Utilisez la documentation incluse dans Zed pour savoir comment utiliser ces fonctions
espace le fait augmenter de 1. La touche
q quitte le programme.import stge def setup(): return 0 def loop(state): width, height = stge.size() for key in stge.keypresses(): if key == "SPACE": state += 1 if key == "q": stge.quit() stge.write_at(width//2, height//2, state) return state stge.run(setup, loop)
(x, y) d’un “personnage”import stge def setup(): return 0, 0 def loop(state): x, y = state xn, yn = x, y width, height = stge.size() for key in stge.keypresses(): if key == "q": stge.quit() if key == "RIGHT": xn += 1 if key == "LEFT": xn -= 1 if key == "UP": yn -= 1 if key == "DOWN": yn += 1 if xn >= 0 and xn < width and yn >= 0 and yn < height: x, y = xn, yn stge.write_at(x, y, "ጰ", fg=(0, 255, 0)) return x, y stge.run(setup, loop)
import stge maze = [ "══╦═══════════════╦═════╦═══════════╦═════╦═══════╗", " ║ ║ ║ ║ ║ ║", "║ ╚═══╦══ ╔═════╗ ╚═══╗ ║ ══╗ ╔═══╗ ╚══ ║ ║ ══╦══ ║", "║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║", "╠═══╗ ║ ╔═╝ ══╗ ╠════ ║ ╚══ ║ ║ ║ ╚═╦═══╬═╩══ ║ ══╣", "║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║", "║ ══╩═══╩═════╝ ║ ╔═══╝ ╔═══╬═══╩═╗ ║ ║ ║ ╔═══╣ ║ ║", "║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║", "╠══════ ╔══════ ║ ╚═════╝ ║ ║ ╔══ ║ ╔═╬═══╣ ║ ╚═╣ ║", "║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║", "║ ╔═════╝ ╔═════╩═══════╦═╣ ║ ║ ╔═╝ ║ ║ ║ ║ ╠══ ║ ║", "║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║", "║ ╚═══╗ ══╣ ══╗ ╔═════╗ ║ ╚═╦═╝ ║ ══╦═╝ ╠═══╣ ╔═╝ ║", "║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║", "║ ╔═╗ ╠══ ╚══ ║ ║ ══╗ ║ ╚═╗ ║ ══╩═╦═╝ ╔═╝ ╔═╝ ║ ══╣", "║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║", "║ ║ ║ ║ ╔═══╗ ╠═╩═╗ ║ ╠══ ║ ╠═══╗ ║ ╔═╣ ══╣ ══╣ ║ ║", "║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║", "╠══ ║ ╚═╝ ║ ╚═╝ ║ ║ ║ ╚═════╝ ║ ║ ║ ║ ║ ║ ╚══ ╚═╝ ║", "║ ║ ║ ║ ║ ║ ║ ║ E", "╚═══╩═════╩═════╩═══╩═════════╩═════╩═══╩══════════", ] def draw_maze(): for i, line in enumerate(maze): stge.write_at(0, i, line) def setup(): return 0, 1 def loop(state): x, y = state xn, yn = x, y for key in stge.keypresses(): if key == "q": stge.quit() if key == "RIGHT": xn += 1 if key == "LEFT": xn -= 1 if key == "UP": yn -= 1 if key == "DOWN": yn += 1 if maze[yn][xn] == " ": x, y = xn, yn draw_maze() stge.write_at(x, y, "ጰ", fg=(0, 255, 0)) return x, y stge.run(setup, loop)