compréhension de qlqs fonctions en Python

YS1

Messages : 13

Inscription : 06 févr. 2005 11:50

Profil de l'utilisateur : Enseignant (CPGE)

Re: compréhension de qlqs fonctions en Python

Message par YS1 » 07 août 2020 23:10

fakbill a écrit :
07 août 2020 11:45
en utilisant l'analogie de Feedback, a est un boîte dans laquelle je range le chiffre 1, et b est une boîte dans laquelle je range une autre boîte notée a, donc b=1 ? :oops:
Oui :).
Non, c'est faux. Dans b, on ne place pas la boite a mais la valeur qu'elle contient. C'est important parce que même si on change ensuite la valeur de a, cette modification ne se répercute pas automatiquement sur b : une variable désigne une valeur (un entier, une chaine, un objet, etc.), pas une expression.

Cependant, la métaphore de la boite n'est pas pertinente en Python : elle ne permet pas de comprendre les phénomènes d'alias (cela supposerait qu'un objet soit dans deux boites différentes simultanément, ce qui est très contre-intuitif).

Une bonne représentation des variables en Python (plus généralement du modèle mémoire) est un schéma avec des flèches comme dans Pythontutor (très pratique pour suivre le déroulement d'un programme).

Messages : 0

Inscription : 28 mai 2019 13:36

Profil de l'utilisateur : Élève de lycée

Re: compréhension de qlqs fonctions en Python

Message par Porus » 10 août 2020 14:25

Feedback a écrit :
07 août 2020 13:10
Si a la fin de la boucle while, i == len, cela signifie quoi au niveau de la recherche de ton élément ?
bah on va sortir de la boucle while puisque le cas i=len(l) ne remplira pas la condition i<len(l)...

Messages : 0

Inscription : 28 mai 2019 13:36

Profil de l'utilisateur : Élève de lycée

Re: compréhension de qlqs fonctions en Python

Message par Porus » 10 août 2020 14:49

:idea: :idea: @Allumer le Freud : il est génial ton code, je comprends bcp mieux :)

en fait en utilisant le boucle while, on "devine" indirectement si x est dans la liste ou pas selon si le compteur (rang) parcourt toute la liste (donc que les conditions de la boucle while sont toujours vérifiées) ou il s'arrête avant et dans ce cas on trouve bien x dans la liste.
Fin je dis ça pcq ça diffère de la méthode avec une boucle for dans laquelle on aurait directement comparé les valeurs de la liste 1 par 1 avec x.

Bref merci bcp

Messages : 0

Inscription : 28 mai 2019 13:36

Profil de l'utilisateur : Élève de lycée

Re: compréhension de qlqs fonctions en Python

Message par Porus » 10 août 2020 14:52

YS1 a écrit :
07 août 2020 23:10
Non, c'est faux. Dans b, on ne place pas la boite a mais la valeur qu'elle contient. C'est important parce que même si on change ensuite la valeur de a, cette modification ne se répercute pas automatiquement sur b

Une bonne représentation des variables en Python (plus généralement du modèle mémoire) est un schéma avec des flèches comme dans Pythontutor (très pratique pour suivre le déroulement d'un programme).
ah okk bv,

merci pour le site aussi :)

Messages : 0

Inscription : 28 mai 2019 13:36

Profil de l'utilisateur : Élève de lycée

Re: compréhension de qlqs fonctions en Python

Message par Porus » 10 août 2020 14:58

YS1 a écrit :
07 août 2020 23:10

Une bonne représentation des variables en Python (plus généralement du modèle mémoire) est un schéma avec des flèches comme dans Pythontutor (très pratique pour suivre le déroulement d'un programme).
j'essaie d'utiliser ce site pour mieux comprendre un code mais est-ce normal que cela ne me montre rien d'intéressant ? :
<iframe width="800" height="500" frameborder="0" src="http://pythontutor.com/iframe-embed.htm ... nces=false"> </iframe>

Messages : 0

Inscription : 14 juin 2015 11:42

Profil de l'utilisateur : Élève de lycée

Re: compréhension de qlqs fonctions en Python

Message par Luckyos » 10 août 2020 16:01

C'est parce que pour l'instant tout ce que ton code fait c'est définir une fonction (tu ne l'utilises pas, il faut l'appeler sur une liste pour que tu visualises son exécution).

Tu peux par exemple rajouter deux lignes après la déclaration de fonction comme ça :

Code : Tout sélectionner

def max(l):
    m=l[0]
    imax=0
    for i in range (len(l)):
        if m<l[i]:
            m=l[i]
            imax=i
    return[imax,m]

l = [0,4,2,3,7,-2]
print(max(l))
D'ailleurs pas besoin d'importer de librairie pour cette fonction.
X2018

Messages : 9679

Inscription : 30 juil. 2008 16:59

Profil de l'utilisateur : Élève de lycée

Re: compréhension de qlqs fonctions en Python

Message par fakbill » 11 août 2020 23:15

Oui !
Enfin non... Ca dépend si le type est mutable ou pas.
En clair, si on peut modifier le contenu d'un objet après l'avoir créé alors a=b veut dire que a est un autre nom pour l'objet b. Si on modifie b alors a sera modifié.
Essaye avec des listes par exemple.

Avec des tuples qui ne sont donc pas modifiables, a=b veut dire 'créé une copie de l'objet b et nomme la a'.

Mais tu va me dire qu'avec des entiers, on peut modifier le contenu d'un objet
a=2
a=a+1
Mais que b=a ne veut pas dire que b sera modifié quand a le sera !!
Donc ????
En fait les entiers python ne sont pas mutables.
a=a+1 ne change pas la valeur dans l'objet a. a+1 créé un nouvel entier qu'on appelle... Mais ce n'est plus le même objet.
a=1000
id(a)
a=a+1
id(a)
Montre bien que "l'identité" de a à changé.

C'est une particularité de python cette distinction mutable/non mutable.
Pas prof.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.

Messages : 43

Inscription : 27 sept. 2019 10:17

Profil de l'utilisateur : Élève de lycée

Re: compréhension de qlqs fonctions en Python

Message par Pas evident » 12 août 2020 11:01

Mon fils s'essaie au python sur ioi ( il approche du niveau 4) et est emballé par Pythontutor que je lui est signalé après lecture de vos échanges.
Est-il intéressant et normal dans son cas de s'en servir (il dit que cela facilite énormément les choses) , où cela va t-il a l'encontre de l'objectif et de l'esprit de ioi?
Le Parc MP2i, Centrale Lyon.

Messages : 9679

Inscription : 30 juil. 2008 16:59

Profil de l'utilisateur : Élève de lycée

Re: compréhension de qlqs fonctions en Python

Message par fakbill » 12 août 2020 13:49

Mais arrêter de vous poser des questions comme ça et dites au fiston de venir nous demander lui même ici quand il aura des problemes.
Il fait du python car ça lui plaît ? Si oui très bien, laisser le faire et bientôt il coder à des petites choses pour lui et non pas parce que ce sera un exo. Quand il sera coincé, il fera ce que tout informaticien fait : Google et il demandera sur les forums qui vont bien.
Pas prof.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.

Messages : 43

Inscription : 27 sept. 2019 10:17

Profil de l'utilisateur : Élève de lycée

Re: compréhension de qlqs fonctions en Python

Message par Pas evident » 12 août 2020 15:23

Je n'ai pas l'impression que vous répondiez a ma question. Pas de façon claire en tout cas.
Pour moi l'informatique s'est arrêté au TO7. Je suis loin d'en comprendre le début et j'ai bien conscience que ma question est sans doute stupide ( Ce que semble confirmer votre réponse).
J'aimerai quand même savoir si Pythontutor peut être utilisé autant qu'on le veut en phase d'apprentissage sans que cela nuise a l'aquisition de bases solides.

Quant a m'arrêter de me poser des questions ( stupides) concernant l'avenir scolaire de mon enfant, je pensais que la vocation de ce site était un peu d'y répondre. Je vais cependant suivre votre conseil et arrêter de vous importuner.
Le Parc MP2i, Centrale Lyon.

Répondre