Annonce

Réduire
Aucune annonce.

Besoin d'aide exercice d'application

Réduire
X
 
  • Filtre
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages

  • Besoin d'aide exercice d'application

    'soir les amis,
    Je suis en train de suivre un guide sur Developpez.com, de TutoSwinnen, et je prend mon temps à refaire chaque exo depuis le début pour m'assurer que je ne perd rien de la progression, et là je suis bloqué, au chapitre 6, sur les fonctions prédéfinies.
    L'exercice en question consiste à demander 3 valeurs à l'utilisateur, pour en faire une liste, puis déterminer quelle-est la valeur la plus grande, et sa place dans la liste.
    Je me suis appuyé sur l'exemple pour essayer de voir le résultat, donc j'ai copié le code dans mon IDLE, rajouté les 2-3 parenthèses manquantes (je programme en Python 3, ce guide a vraisemblablement été fait pour le 2.X), mais le résultat déconne.
    Voici le code de Mr Swinnen :

    Code:
    print "Ce script recherche le plus grand de trois nombres"
    print 'Veuillez entrer trois nombres séparés par des virgules : '
    
    # Note : la fonction list() convertit en liste la séquence de données qu'on
    # lui fournit en argument. L'instruction ci-dessous convertira donc les
    # données fournies par l'utilisateur en une liste nn :
    
    nn = list(input())
    max, index = nn[0], 'premier'
    
    if nn[1] > max:                   
        max = nn[1]
        index = 'second'
    
    if nn[2] > max:
        max = nn[2]
        index = 'troisième'
    
    print "Le plus grand de ces nombres est", max
    print "Ce nombre est le", index, "de votre liste."
    Et voici le résultat :
    Ce script recherche le plus grand de trois nombres
    Veuillez entrer trois nombres séparés par des virgules :

    1,2,3

    Le plus grand de ces nombres est 2
    Ce nombre est le troisième de votre liste.

    À ce que je vois, il prend les 3 premiers caractères de la chaîne, et non les nombres saisis, donc j'obtiens un résultat erroné.

    Alors je me suis dit "pas grave, je peux faire sans aperçu", donc voici mon code, différent:

    Code:
    lst=[]    #Liste
    i=0       #Compteur
    max = 0   #Terme plus grand
    
    #Etape 1 : Le programme demande à l'utilisateur de choisir 3 valeurs
    
    while i < 3:    #Boucle
        print ("Nombre",i+1,"/3", end='')    #Demande les 3 nombre (et les compte)
        lst.append(input(" : "))           #Entrée des valeurs
        i=i+1   #Complète la boucle
    print(lst)
    
    i=0  #Retour à 0
    
    #Etape 2 : Si le terme i de la liste est plus grand que le chiffre précédent,
    #           alors ce terme i est remplacé par le terme i+1, et le chiffre précédent devient i
    #Répéter jusqu'à ce que le terme i ne soit plus supérieur au chiffre précédent.
    
    while int(lst[i]) > int(max): 
        if int(lst[i])>int(max):   #Si la valeur du terme i est plus grand que celle de "max"
            max=int(lst[i])        # alors "max" prend la valeur du terme i plus grand que lui
        i=i+1
    print("Le plus grand terme de la liste est le",i) #Affiche le terme le plus grand
    La partie rouge, c'est là où je suis parti en c*******, et je cherche un moyen de parvenir à mes fins, à savoir l'étape 2
    J'ai essayé plusieurs possibilités en jonglant avec "i", lst[i]","max" dans la condition, mais j'ai jamais les bons résultats.
    Exemple:
    ['1', '9', '5']
    Le plus grand terme de la liste est le 0

    Y aurait-il un moyen de terminer ce programme grâce à une boucle While, et si oui, un pro aurait-il la solution ?

    J'espère que j'ai été assez clair, j'ai du mal à expliquer ce que je veux faire ^_^

    EDIT : J'ai trouvé le tuto du même auteur pour Python 3, avec un code correct cette fois-ci. Cela-dit, je me pose toujours la même question ^_^
    Dernière modification par Neri, 09 avril 2015, 02h21.

  • #2
    Dans le 1er script, ça serait plutôt

    Code:
    nn = list(map(int, input().split(',')))
    Selon la version python que tu utilises, ici je pense que c'est la version 3.x, cette ligne est bonne ou fausse.

    EDIT: Effectivement tu es en version 3.x
    Dernière modification par fred, 09 avril 2015, 09h03.

    Commentaire

    Chargement...
    X