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 :

Débutant en quête de savoir


Sujet :

Python

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Septembre 2011
    Messages : 65
    Points : 36
    Points
    36
    Par défaut Débutant en quête de savoir
    Bonjour à tous,

    j'ai débuté il y a peu la programmation python. Je prends beaucoup de plaisir et j'ai surtout l'impression de vraiment apprendre et progresser dans le domaine. À travers tout ça, j'essaie de travailler sur de petits programmes connexes de façon à pratiquer et mettre un peu plus en pratique les connaissances acquisent.

    Hier soir, je voulais réaliser un petit programme dont le fonctionnement demeure très simple :

    Le programme demande à l'utilisateur d'entrer 5 titres de films, puis celui-ci renvoie aléatoirement un des titres de la liste. Je pensais être tout à fait en contrôle, pourtant le programme ne semble pas fonctionner et c'est pourquoi je me dirige vers vous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    import random
     
    movies = []
     
    for title in range(5):
        title = str(input('Entrer un nouveau titre:'))
        title.append(movies)
     
    my_movie = random.choice(movies)
    print my_movie
    J'ai droit à un invalid syntax mais je ne comprends pas vraiment pourquoi. Merci de votre aide!

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 43
    Points : 60
    Points
    60
    Par défaut
    Bonjour,

    Ton erreur provient surement d'un problème d'indentation, teste ton programme sur ton terminal. Sinon tu as une erreur lorsque tu fais ton "title.append(movies)". Ton but à ce niveau est d'ajouter le nouveau titre à ta liste "movies" et non l'inverse:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    import random
     
    movies = []
     
    for title in range(5):
        title = str(input('Entrer un nouveau titre:'))
        movies.append(title)
     
    my_movie = random.choice(movies)
    Sinon je ne suis pas certain que le "str()" devant l'input te serve à quelque chose. =)

  3. #3
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Salut,

    J'ajouterai aussi qu'il ne faut pas réutiliser le même nom pour l'itération et le titre.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for title in range(5):
        title = ...
    ça n'a aucun sens, utilise plutôt:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    for i in range(5):
        title = ...

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Septembre 2011
    Messages : 65
    Points : 36
    Points
    36
    Par défaut
    Merci à toi Viandox,

    Un problème d'indention..Mhh je ne penserais pas, les choses me semblent correct à ce niveau maintenant en remplaçant movies.append(title) par title.append(movies) ( plus logique en effet ) j'ai droit à un nouveau message d'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Traceback (most recent call last):
      File "/Users/patricemaillot/Desktop/python/cine_roll.py", line 8, in <module>
        title.append(movies)
    AttributeError: 'str' object has no attribute 'append'
    edit : je n'avais pas vu ton message VinSs, merci à toi c'est corrigé!

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 43
    Points : 60
    Points
    60
    Par défaut
    Salut,

    J'ajouterai aussi qu'il ne faut pas réutiliser le même nom pour l'itération et le titre.
    oula oui en effet j'avais même pas remarqué =S

    Un problème d'indention..Mhh je ne penserais pas, les choses me semblent correct à ce niveau maintenant en remplaçant movies.append(title) par title.append(movies) ( plus logique en effet ) j'ai droit à un nouveau message d'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Traceback (most recent call last):
      File "/Users/patricemaillot/Desktop/python/cine_roll.py", line 8, in <module>
        title.append(movies)
    AttributeError: 'str' object has no attribute 'append'
    Fait attention, ton message d'erreur montre justement que tu n'as pas remplacé title.append(movies) par movies.append(title).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    import random
     
    movies = []
     
    for i in range(5):
        title = str(input('Entrer un nouveau titre:'))
        movies.append(title)
     
    my_movie = random.choice(movies)

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Septembre 2011
    Messages : 65
    Points : 36
    Points
    36
    Par défaut
    Fait attention, ton message d'erreur montre justement que tu n'as pas remplacé title.append(movies) par movies.append(title).
    Houla effectivement mêlé le monsieur...Alors bon j'ai effectivement remplacé title.append(movies) par movies.append(title) maintenant je peux aisément entrer mes 5 titres de films mais je n'ai toujours pas accès à mon "tirage"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    import random
     
    movies = []
     
    for i in range(5):
        title = input('Add new title:')
        movies.append(title)
     
    my_movie = random.choice(movies)
    print my_movie
    Il semble y avoir un soucis avec my_movie puisque la encore je me retrouve avec un invalid syntax :

    Nom : Capture d’écran 2014-03-29 à 11.12.11.png
Affichages : 102
Taille : 63,7 Ko

  7. #7
    Membre averti
    Homme Profil pro
    Développeur en formation
    Inscrit en
    Juillet 2013
    Messages
    300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur en formation
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2013
    Messages : 300
    Points : 413
    Points
    413
    Par défaut
    Très simple. Comme tu es débutant, j'imagine que tu es en python 3. Or il y a quelques différences de tailles entre python 2 et 3, notamment le print qui devient une fonction et plus un mot clef, il faut mettre des parenthèses avec print :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    import random
     
    movies = []
     
    for i in range(5):
        title = input('Add new title:')
        movies.append(title)
     
    my_movie = random.choice(movies)
    print (my_movie)#c'est ici qu'il faut mettre les parenthèses
    Bouddha : Tout n'est qu'illusion en ce bas monde.
    Jésus : Tout est amour divin.
    Einstein : Tout est relatif dans cet espace-temps.
    Moi : Tout est binaire sur ce forum.

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Septembre 2011
    Messages : 65
    Points : 36
    Points
    36
    Par défaut
    Il y a beaucoup de changements entre python 2 et 3? je vais donc devoir redoubler de vigilance.

    Alors effectivement il manquait simplement la parenthèse après le print tout fonctionne comme prévu à présent. Merci, pour votre aide!

    Hop on retourne au charbon!

  9. #9
    Membre averti
    Homme Profil pro
    Développeur en formation
    Inscrit en
    Juillet 2013
    Messages
    300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur en formation
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2013
    Messages : 300
    Points : 413
    Points
    413
    Par défaut
    De rien ! et oui, les différences sont de taille. Moi pour apprendre (le python est mon 1er langage), j'ai utilisé un tutoriel direct en python 3. Sinon, là où les différences vont être les plus gênantes - à mon goût - c'est sur les types bytes et str qui ne marchent pas pareil. Sur ce site et référencés sur google, il y a plein d'articles sur les changements entre python 2 et 3, mais si tu débutes, prends un tuto pour python 3 (ou à la limite programme en Python 2, mais il va finir par devenir plus ou moins obsolet au fil du temps).
    Bouddha : Tout n'est qu'illusion en ce bas monde.
    Jésus : Tout est amour divin.
    Einstein : Tout est relatif dans cet espace-temps.
    Moi : Tout est binaire sur ce forum.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Admin junior en quête du savoir
    Par DSOFJ dans le forum Présentations
    Réponses: 0
    Dernier message: 07/02/2013, 21h45
  2. [débutant] savoir le temps d'exécution
    Par cyrill.gremaud dans le forum Langage
    Réponses: 14
    Dernier message: 19/10/2006, 12h43
  3. Réponses: 6
    Dernier message: 12/06/2006, 13h05
  4. [C#][Débutant] Comment savoir qu un champ a été modifié ?
    Par Cazaux-Moutou-Philippe dans le forum Windows Forms
    Réponses: 23
    Dernier message: 11/05/2006, 15h45
  5. [C#][Débutant] Comment savoir si un PictureEdit est vide ou plein
    Par Cazaux-Moutou-Philippe dans le forum Windows Forms
    Réponses: 7
    Dernier message: 07/05/2006, 15h34

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