Astuces python On réunit ici quelques commandes pratiques spécifiques au langage python. Comme elles n’existent pas dans tous les langages, on déconseille de les utiliser dans un algorithme écrit en français. Cependant, elles seront sans doute acceptées pour rédiger une fonction en python. 1 Boucle "pour" améliorée : parcourt d’un tableau, d’une chaîne de caractères, d’un fichier Soit X un tableau, ou une chaîne de caractère, ou un fichier. Alors si on effectue : for x in X: La variable x prendra comme valeurs successives : — Les éléments de X si X est un tableau (N.B. dans le cas d’un tableau de tableaux, x prendra donc comme valeurs successives les lignes de ce tableau) — Les caractères de X si X est une chaîne de caractères — Les lignes de X si X est un fichier. 2 Liste en compréhension Soit f une fonction définie sur les entiers. La commande : [ f(i) for i in range(0,n) ] crée le tableau [ f(0), f(1), ... f(n-1)]. Par exemple [ i**2 for i in range(0,4)] renvoie [0,1,4,9]. On peut bien sûr utiliser une fonction constante : par exemple [0 for i in range(0,n)] crée un tableau contenant n zéros. On peut créer des tableaux de tableaux de la sorte : [ [0 for j in range(0,p)] for i in range(0,n)] crée un tableau de tableaux de format n × p. Enfin, il est possible de combiner cette astuce avec la précédente. Par exemple si L est un tableau d’entier, [ x**2 for x in L] crée le tableau des carrés des éléments de L. 3 Tranches de listes Soit T un tableau. La commande T[deb: fin: pas] renvoie les éléments de T du numéro deb au numéro fin (exclu comme toujours), en avançant par pas de pas. Par exemple, pour récupérer les carrés de nombres impairs jusqu’à n − 1 on peut taper : [i**2 for i in range(0,n)] [1:n:2] Mais bien sûr c’est plus simple d’utiliser : [ (2*i+1)**2 for i in range(0,n//2)] ou même [i**2 for i in range(0,n,2)].