Utilisation fonction range
giny28
Messages postés
8
Date d'inscription
Statut
Membre
Dernière intervention
-
nidhogg-59 Messages postés 102 Date d'inscription Statut Membre Dernière intervention -
nidhogg-59 Messages postés 102 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
A quoi sert le 3ème argument de la fonction range() ? ici on ajoute 3 mais pourquoi la liste s'arrête à 11 ...
_ Je n'ai pas saisi l'approche fonctionnelle de 'for' : Pouvez-vous me l'expliquer ?
A quoi sert le 3ème argument de la fonction range() ? ici on ajoute 3 mais pourquoi la liste s'arrête à 11 ...
>> range(2, 13, 3)
[2, 5, 8, 11]
_ Je n'ai pas saisi l'approche fonctionnelle de 'for' : Pouvez-vous me l'expliquer ?
>>> L=[[i*j for j in range(3)] for i in range(3)]J'ai essayé de comprendre en utilisant print mais çà ne me renseigne pas beaucoup :
>>> L
[[0, 0, 0], [0, 1, 2], [0, 2, 4]]
>>> print([i*j for j in range(3)])
[0, 2, 4]
>>> print([i*j for i in range(3)])
[0, 2, 4]
A voir également:
- Utilisation fonction range
- Fonction si et - Guide
- Fonction miroir - Guide
- Fonction moyenne excel - Guide
- Vba range avec variable ✓ - Forum VB / VBA
- Out of range écran ✓ - Forum Matériel & Système
1 réponse
Bonsoir!
Le troisième argument de la fonction range est le pas. En gros, c'est ce qu'on ajoute pour avoir l'élément suivant, et par défaut, il vaut 1.
Bon, c'est pas vraiment clair, donc:
En faisant range(2,13,3), on commence à 2; on ajoute 3 (le pas) et on se retrouve à 5; on ajoute à nouveau 3 et on se retrouve à 8; puis à 11. Là, si on ajoute 3, on dépasse la valeur du deuxième argument (qui est 13). Donc la liste s'arrête à 11.
en gros, range pourrait être codée de cette façon:
J'ai bien dit 'pourrait': en fait elle n'est pas codée comme ça...
Pour ce qui est de for, il y a un problème au niveau de ton code:
Ici la variable i n'est pas déclarée. Si tu n'a pas eu d'erreur c'est certainement parce que tu l'avais déclarée avant...
Pour faire simple, faire ça:
revient à faire ça:
Mais si tu n'est pas encore à l'aise avec python et les listes, je te conseil de revoir ça plus tard, c'est pas quelque chose d'indispensable, c'est juste une notation plus compacte pour créer des listes.
Sinon, ici 'for' agit de la même manière qu'ailleurs:
Dans
for i in sequence
for fait prendre successivement les valeurs qui sont dans sequence à i.
Tu apprends comment le python? à l'école? seule grâce à internet?
Ça pourrait aider si on savait ce que tu connais déjà.
Sinon, un bon tuto sur le python ici: https://openclassrooms.com/fr/courses/235344-apprenez-a-programmer-en-python/230659-decouvrez-python
Le troisième argument de la fonction range est le pas. En gros, c'est ce qu'on ajoute pour avoir l'élément suivant, et par défaut, il vaut 1.
Bon, c'est pas vraiment clair, donc:
En faisant range(2,13,3), on commence à 2; on ajoute 3 (le pas) et on se retrouve à 5; on ajoute à nouveau 3 et on se retrouve à 8; puis à 11. Là, si on ajoute 3, on dépasse la valeur du deuxième argument (qui est 13). Donc la liste s'arrête à 11.
en gros, range pourrait être codée de cette façon:
def range(debut,fin,pas): var = debut liste = [] while var < fin: liste.append(var) var += pas return liste
J'ai bien dit 'pourrait': en fait elle n'est pas codée comme ça...
Pour ce qui est de for, il y a un problème au niveau de ton code:
Ici la variable i n'est pas déclarée. Si tu n'a pas eu d'erreur c'est certainement parce que tu l'avais déclarée avant...
Pour faire simple, faire ça:
liste=[i for i in range(0,10,1)]
revient à faire ça:
liste=[] for i in range(0,10,1): liste.append(i)
Mais si tu n'est pas encore à l'aise avec python et les listes, je te conseil de revoir ça plus tard, c'est pas quelque chose d'indispensable, c'est juste une notation plus compacte pour créer des listes.
Sinon, ici 'for' agit de la même manière qu'ailleurs:
Dans
for i in sequence
for fait prendre successivement les valeurs qui sont dans sequence à i.
Tu apprends comment le python? à l'école? seule grâce à internet?
Ça pourrait aider si on savait ce que tu connais déjà.
Sinon, un bon tuto sur le python ici: https://openclassrooms.com/fr/courses/235344-apprenez-a-programmer-en-python/230659-decouvrez-python