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 carac-
tères, d’un fichier
Soit Xun tableau, ou une chaîne de caractère, ou un fichier. Alors si on eectue :
for x in X:
La variable xprendra comme valeurs successives :
Les éléments de Xsi Xest un tableau (N.B. dans le cas d’un tableau de tableaux, xprendra donc comme valeurs
successives les lignes de ce tableau)
Les caractères de Xsi Xest une chaîne de caractères
Les lignes de Xsi Xest un fichier.
2 Liste en compréhension
Soit fune 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 conte-
nant nzé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 Lest 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 Tun tableau. La commande T[deb: fin: pas] renvoie les éléments de Tdu 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’à n1 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)].
1 / 1 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !