IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Apprendre � programmer avec Python exercices 5.14


Sujet :

Python

  1. #1
    Membre � l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    4
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 4
    Par d�faut Apprendre � programmer avec Python exercices 5.14
    Bonjour,

    Pour le livre Apprendre � programmer avec Python 3 https://python.developpez.com/cours/apprendre-python3/ , je voudrais savoir si c'est logique que la ligne :

    prend 1 par d�faut ?
    L'exercice :
    5.14. �crivez un programme qui analyse un par un tous les �l�ments d'une liste de nombres (par
    exemple celle de l'exercice pr�c�dent) pour g�n�rer deux nouvelles listes. L'une contiendra
    seulement les nombres pairs de la liste initiale, et l'autre les nombres impairs. Par exemple,
    si la liste initiale est celle de l'exercice pr�c�dent, le programme devra construire une liste
    pairs qui contiendra [32, 12, 8, 2], et une liste impairs qui contiendra [5, 3, 75,
    15]. Astuce : pensez � utiliser l'op�rateur modulo (%) d�j� cit� pr�c�demment.
    mon code:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    liste = [32, 5, 12, 8, 3, 75, 2, 15]
    pair = []
    impair = []
    a = 0
    b = len(liste)
    while a < b:
    	d = liste[a]
    	if d % 2:
    		impair.append(d)
    	else:
    		pair.append(d)
    	a = a + 1
    print "De la liste donnée 32 5 12 8 3 75 2 15"
    print "les chiffres pairs sont", pair
    print "les chiffres impairs sont", impair
    le r�sultat:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Exercice 5.14 :
    # Séparation des nombres pairs et impairs
    # Liste fournie au départ :
    tt = [32, 5, 12, 8, 3, 75, 2, 15]
    pairs = []
    impairs = []
    # Examen de tous les éléments :
    i = 0
    while i < len(tt):
        if tt[i] % 2 == 0:
             pairs.append(tt[i])
        else:
             impairs.append(tt[i])
        i = i + 1
    # Affichage :
    print "Nombres pairs :", pairs
    print "Nombres impairs :", impairs
    Et tant qu'� faire, vous en penser quoi, du code, et c'est pas grave si j'utilise if d % 2: au lieu de if tt[i] % 2 == 0: (pour le ==0 surtout) ?

  2. #2
    Membre �m�rite

    Profil pro
    Inscrit en
    Ao�t 2004
    Messages
    723
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 723
    Par d�faut
    Pour le if, est consid�r� comme vrai tout entier non nul

    Les deux codes sont �quivalents. Attention quand m�me car if d % 2: v�rifie si d est impair, ce qui peut �tre contre-intuitif, � �viter donc.

    Ensuite, tu peux remplacer ta boucle while par un for, tu verras �a plus loin (chapitre 10) si tu suis l'ordre du tuto de Swinnen

  3. #3
    Membre � l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    4
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 4
    Par d�faut
    Merci oiffrig pour ta r�ponse, je trouve effectivement que c'est contre-intuitif comme tu dis, d'ailleurs j'avais d'abord mis la chaine des pairs en pensant que ce serait pris en compte directement. Le code fonctionnait, mais avec les r�sultats invers�s, donc.

    Dans le chapitre 6.4, je trouve:
    En Python, tout comme en C, en Basic et en de nombreux autres
    langages de programmation, on consid�re que toute valeur num�rique autre que z�ro est � vraie �.
    Seule la valeur z�ro est � fausse �. Exemple :
    a = input('Entrez une valeur quelconque')
    if a:
    print "vrai"
    else:
    print "faux"
    Le petit script ci-dessus n'affiche � faux � que si vous entrez la valeur 0. Pour toute autre valeur
    num�rique, vous obtiendrez � vrai �.
    Si vous entrez une cha�ne de caract�res ou une liste, vous obtiendrez encore � vrai �. Seules les
    cha�nes ou les listes vides seront consid�r�es comme � fausses �.
    et comme
    >>> 35%2
    1
    >>> 34%2
    0
    �a n'est rien de dire que c'est contre-intuitif...
    donc ok pour if tt[i] % 2 == 0:

  4. #4
    Membre �m�rite Avatar de mchk0123
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    816
    D�tails du profil
    Informations personnelles :
    Localisation : France, Paris (�le de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 816
    Par d�faut
    Petit d�tail, en g�n�ral on nomme les variables d'indice d'une boucle 'i' et les longeurs de liste (resultat d'un len) 'n' ; et les �l�ments d'une liste 'x' ou 'e'.

    Rien n'oblige � suivre cette convention. C'est juste une convention tacite mais qui permet de relire plus facilement le code de qq'un d'autre ou son propre code.

    Enfin tu peut aussi tr�s bien �crire "d % 2 == 0" si tu veux �viter l'effet contre-intuitif mais garder "d" au lieu de "tt[i]" qui alourdi un peu le code.

    A part �a, le code est tr�s bien.

    PS : as-tu un lien de parent� avec JC.Bellamy ?
    http://jc.bellamy.free.fr/fr/jcb.html

  5. #5
    Membre confirm�
    Profil pro
    Inscrit en
    F�vrier 2007
    Messages
    206
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2007
    Messages : 206
    Par d�faut
    Pour �viter d'alourdir ton code, au lieu d'�crire:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    ch="abcdefgh"
    i=0
    a=len(ch)
     
    while i < a:
    tu peux �crire:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    ch="abcdefgh"
    i=0
     
    while i < len(ch)
    :

  6. #6
    Membre �m�rite
    Avatar de GnuVince
    Profil pro
    D�veloppeur informatique
    Inscrit en
    Avril 2004
    Messages
    679
    D�tails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Avril 2004
    Messages : 679
    Par d�faut
    Citation Envoy� par scheme Voir le message
    Pour �viter d'alourdir ton code, au lieu d'�crire:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    ch="abcdefgh"
    i=0
    a=len(ch)
     
    while i < a:
    tu peux �crire:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    ch="abcdefgh"
    i=0
     
    while i < len(ch)
    :
    Pour �viter d'alourdir son code, il devrait faire:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    for i in liste:
       ...
    Et pour bien te former, les cours et tutoriels pour apprendre Python : https://python.developpez.com/cours/

  7. #7
    Membre confirm�
    Profil pro
    Inscrit en
    F�vrier 2007
    Messages
    206
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2007
    Messages : 206
    Par d�faut
    Ah, d�sol� je ne suis pas beaucoup plus avanc� que lui dans les exercices, je ne suis pas encore arriv� au chapitre traitant de "for".

    Merci de ta pr�cision en tout cas

  8. #8
    Expert confirm�
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 060
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activit� : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 060
    Par d�faut
    A part �a, le code est tr�s bien.
    +1

    as-tu un lien de parent� avec JC.Bellamy ?
    Moi aussi je me suis pos� la question

Discussions similaires

  1. R�ponses: 4
    Dernier message: 16/09/2011, 01h57
  2. Apprendre � programmer avec Python exercices 4.2
    Par bellamy dans le forum G�n�ral Python
    R�ponses: 5
    Dernier message: 15/10/2009, 14h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo