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 :

Aide résolution d'un sujet


Sujet :

Python

  1. #1
    Nouveau membre du Club Avatar de LazyLearner
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2019
    Messages : 7
    Par défaut Aide résolution d'un sujet
    Bonsoir,

    Je suis désespérement à la recherche d'une aide pour me guider dans la résolution d'un sujet dans le cadre de mes études.
    Je ne sais pas si je suis au bon endroit, si non je m'en excuse par avance !

    J'ai commencé à étudier Python cette année et j'ai terriblement de mal à assimiler, ayant pour seul cours un livre pour enfants en anglais et très peu de temps devant moi.

    Mon sujet consiste à créer un jeu de traduction (3 langues différentes, 20 mots pour chaque langues). En cas de mauvaise réponse mettre en place le jeu du pendu afin de faire deviner le mot.
    Je n'ai pas d'autres indications !


    J'ai commencé par créer 2 listes (une pour les mots, une pour les langues), à mon avis il faut que j'utilise une fonction pour la question (devant être aléatoire)

    Malheureusement avec mon petit niveau, je ne saurai pas aller plus loin. Auriez-vous des idées ?

    Merci !

  2. #2
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 064
    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 064
    Par défaut
    Bonsoir,

    Si je comprend ce que tu dis dans ton explication, tu souhaites écrire tous les mots de toutes les langues et leurs traductions dans le code en dur ?

  3. #3
    Membre chevronné
    Homme Profil pro
    BTS SN IR
    Inscrit en
    Mai 2017
    Messages
    514
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : BTS SN IR

    Informations forums :
    Inscription : Mai 2017
    Messages : 514
    Par défaut
    une liste de dictionnaires et c'est plié.

    exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    [
    	{
    		"fr": "voiture",
    		"en": "car",
    		"chti": "carette",
    	},
    	{
    		"fr": "chien",
    		"en": "dog",
    		"chti": "je suis pas google trad 🤷",
    	},
    ]

  4. #4
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 064
    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 064
    Par défaut
    Citation Envoyé par flapili Voir le message
    une liste de dictionnaires et c'est plié.

    exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    [
        {
            "fr": "voiture",
            "en": "car",
            "chti": "carette",
        },
        {
            "fr": "chien",
            "en": "dog",
            "chti": "je suis pas google trad 🤷",
        },
    ]
    Hello,

    Alors souhaitons lui bon courage

  5. #5
    Nouveau membre du Club Avatar de LazyLearner
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2019
    Messages : 7
    Par défaut
    Citation Envoyé par fred1599 Voir le message
    Bonsoir,

    Si je comprend ce que tu dis dans ton explication, tu souhaites écrire tous les mots de toutes les langues et leurs traductions dans le code en dur ?
    Exactement !

    @flapili, merci de ta répnse ! Je n'avais pas de problème sur cette partie mais plutot sur le fonctionnement du jeu, je ne sais pas comment procéder

  6. #6
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 839
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par LazyLearner Voir le message
    @flapili, merci de ta répnse ! Je n'avais pas de problème sur cette partie mais plutot sur le fonctionnement du jeu, je ne sais pas comment procéder
    Déjà il te faut absolument dissocier les actions. D'un côté il y a le traducteur, et de l'autre le jeu du pendu. Avec une fonction dédiée à chaque action.

    Maintenant concentrons-nous sur le pendu. C'est quoi le principe ?
    • un affichage d'un mot avec chaque lettre inconnue remplacée par un tiret. Donc il te faudra un outil gérant les lettres du mot trouvées par le joueur. Un petit "set()" fera l'affaire.
    • faire saisir une lettre (avec si on est gentil la gestion des lettres déjà saisies pour ne pas faire perdre de vie inutilement au joueur => là encore un autre "set()" et c'est réglé)
    • si la lettre est dans le mot, alors la lettre devient connue (on la rajoute dans le premier "set()"), Et si tout le mot est connu (donc plus aucune lettre du mot ne se trouvant pas dans le "set()") alors on a gagné. Et ça c'est pas compliqué à coder. Si le mot à trouver est stocké dans la variable "mot", et que les lettres déjà trouvées sont stockées dans l'ensemble "trouve", alors il suffit de regarder set(mot) - trouve. S'il y a un résultat non vide alors c'est qu'il y a encore des lettres à trouver sinon c'est bon. Et si la lettre choisie n'est pas dans le mot alors on perd une vie et si on n'a plus de vie on est pendu
    • et tout ça dans une boucle infinie (infinie seulement en théorie car on en sort quand-même soit en gagnant, soit en perdant)


    Ne reste qu'à traduire cet algorithme en Python. Dans une belle fonction "jeu()" recevant en paramètre le mot à faire deviner, et quittant avec True/False si le joueur gagne ou perd.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  7. #7
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 064
    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 064
    Par défaut
    Citation Envoyé par LazyLearner Voir le message
    Exactement !
    C'est dans le sujet qu'on t'impose cela ? Parce-qu'à vrai dire, j'avais pensé à une API Google Translate avec googletrans et une base de données SQLite3.

    Imaginons qu'après, on te demande d'y ajouter 40 000 mots supplémentaires, on fait comment ?

  8. #8
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 839
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par fred1599 Voir le message
    Imaginons qu'après, on te demande d'y ajouter 40 000 mots supplémentaires, on fait comment ?
    A la base tout le monde sera d'accord avec toi. Il est vrai qu'un outil "bdd like" est plus approprié vis à vis de l'évolutivité que tu décris.
    Toutefois j'ai l'intuition qu'il s'agit juste d'un TP d'apprentissage et que, dans ce cas précis, cette situation n'arrivera jamais
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  9. #9
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 064
    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 064
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    A la base tout le monde sera d'accord avec toi. Il est vrai qu'un outil "bdd like" est plus approprié vis à vis de l'évolutivité que tu décris.
    Toutefois j'ai l'intuition qu'il s'agit juste d'un TP d'apprentissage et que, dans ce cas précis, cette situation n'arrivera jamais
    Je m'en doutais un peu, cependant l'idée de mettre les mots et leurs traductions en durs, je crois que c'est le plus mauvais choix qu'on puisse faire... À la rigueur dans un fichier avec des lignes du style "mot, trad1, trad2, trad3" aurait été une meilleure idée.

    Ce qui m'étonne, c'est que certains exercices se rapprochent absolument pas de cas concrets. Surpris par ce type d'enseignement !

  10. #10
    Nouveau membre du Club Avatar de LazyLearner
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2019
    Messages : 7
    Par défaut
    Merci pour vos réponses, je vais tenter ça et revenir vers vous si ça coince !


    Citation Envoyé par fred1599 Voir le message
    Je m'en doutais un peu, cependant l'idée de mettre les mots et leurs traductions en durs, je crois que c'est le plus mauvais choix qu'on puisse faire... À la rigueur dans un fichier avec des lignes du style "mot, trad1, trad2, trad3" aurait été une meilleure idée.

    Ce qui m'étonne, c'est que certains exercices se rapprochent absolument pas de cas concrets. Surpris par ce type d'enseignement !
    Je suis tout à fait d'accord, à vrai dire il n'est rien précisé dans le sujet, il ne nous dit pas non plus comment le jeu doit fonctionner (j'ai eu du mal à déchiffrer les quelques lignes données).
    Mais étant donné que je n'ai pas "appris" à importer des fichiers dans le code, je suppose que ce n'est pas demandé.

  11. #11
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 064
    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 064
    Par défaut
    Mais étant donné que je n'ai pas "appris" à importer des fichiers dans le code, je suppose que ce n'est pas demandé.
    Peut-être souhaite-t-il que vous ayez un minimum d'autonomie dans votre recherche ?

    Le fait qu'il ne précise rien, indique que vous n'avez pas de limite ou de cadre pour votre projet.

    Vous a-t-il demander de poser vos questions sur des forums de développement ? Je ne pense pas, et pourtant vous le faîtes, car avec un peu d'autonomie et de bon sens, vous souhaitez discuter avec des personnes expérimentées afin de vous guider. Mais jusque où êtes vous prêt à être à l'écoute et à apprendre, cela est toute autre chose.

  12. #12
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 754
    Par défaut
    Salut,

    Citation Envoyé par fred1599 Voir le message
    Ce qui m'étonne, c'est que certains exercices se rapprochent absolument pas de cas concrets. Surpris par ce type d'enseignement !
    Le but d'un exercice d'apprentissage à la programmation est de permettre à l'étudiant de pratiquer les notions qu'on a essayé de lui apprendre *et* de se coltiner à la mise au point d'un petit programme. Ce qui suppose que le problème soit suffisamment simple pour qu'il puisse réfléchir à la solution en crayonnant sur une feuille de papier avant de partir à coder.

    Et l'apprentissage à la programmation n'est qu'une toute petite étape dans l'apprentissage du métier de programmeur/développeur d'applications informatiques.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  13. #13
    Nouveau membre du Club Avatar de LazyLearner
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2019
    Messages : 7
    Par défaut
    Bonjor à tous, merci pour vos réponses.

    J'ai pu avancer sur mon sujet, en prenant en considération vos conseils (je mettrai les mots et fonctions dans un fichier à part quand je saurais comment faire > pour rendre le code plus lisible).

    J'ai commencé la partie pendu, mais pas encore opérationnelle, je reviendrai vers vous quand j'aurai avancé.

    J'ai cependant quelques questions sur random. J'ai essayé de trouver une réponse sur internet, mais j'ai peur de ne pas avoir compris.

    Voici 2 fonctions pour le choix aléatoire parmis les listes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    # Fonction mot aléatoire
    def mot_aleat():
        return random.choice(?)
     
    # Fonction langue aléaoire
    def langue_aleat():
        return random.choice(liste_langues)

    Voici ma fonction question :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    # Définition d'une fonction question
    def question_trad():
        print("Traduire",mot_aleat(), "en langue", langue_aleat())
        reponse = input("-->")
        if reponse.lower() == ? :
            return True
        return False
    Et les listes (les langues sont imposées par le sujet)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    # Liste des mots du jeu
    liste_Minion = ["Felonius", "Scarlette", "Papple", "Papuche", "Papaguena", "Papaya", "Bido", "Chipolata", "Profiterole",
                    "Stoppa", "Pauteuil", "Poukilaloupata", "Mèledoi", "Titoire", "Peute", "Lokatou", "Molag", "Pinata",
                    "Yakitori", "Makalo"]
    liste_Chat = ["Miaou", "Mew", "Grrrr ", "Chomme", "Chuche", "Chadame", "Chachaye", "Chicho", "Chapacontent",
                  "Chuculent", "Chtop", "Chanapé", "Choupi", "Chavoiture", "Chichi", "Chouf", "Chareux", "Chtape",
                  "Challons", "Chopatate"]
    liste_Fr = ["Gentil", "Malin", "Pomme", "Peluche", "Demoiselle", "Papaye", "Ventre", "Énervé", "Dessert", "Arrêter",
                "Fauteuil", "Génial", "Faire du stop", "Histoire", "Regarder", "Peureux", "Tapette", "Aller", "Justesse"]
     
    # Liste des langues du jeu
    liste_langues = ["Minion", "Chat", "Française"]
    Mon problème est que je ne sais pas comment choisir un élement aléatoire parmi les 3 listes. Sachant qu'une liste = une langue différente, il ne faut pas tomber sur un mot aléatoire de même langue que la langue aléatoire tirée (je ne sais pas si c'est clair). Je pense qu'il faudra que je fasse une comparaison ?

    Il faudrait aussi que je puisse réutiliser le mot aléatoire choisi pour la partie pendu, et qu'il faudrait donc la traduction qui va avec ? (je dois définir une autre fonction certes, mais je ne sais pas comment associer la traduction allant avec le mot aléatoire).

    Pour l'instant je bloque sur ça, j'ai réussi à faire cette suite mais c'est bancal, j'aimerai que le if a == False soit en dehors du While True, j'ai essayé de l'en sortir mais ça ne fonctionne pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    while True :
        a = question_trad()
        if a == True:
            print("Bravo, vous avez trouvé la bonne réponse !")
            relance_question = input("Si vous souhaitez relancer le jeu, écrire R. Sinon, écrire Q.")
            if relance_question == "Q":
                break
            if relance_question == "R":
                continue
     
    # Fonctionnement jeu du pendu
        if a == False:
            jeu_pendu(liste_Chat[1])
    Voilà à peu près, c'est loin d'être terminé mais j'avance difficilement.

  14. #14
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 754
    Par défaut
    Salut,

    Citation Envoyé par LazyLearner Voir le message
    Mon problème est que je ne sais pas comment choisir un élement aléatoire parmi les 3 listes. Sachant qu'une liste = une langue différente, il ne faut pas tomber sur un mot aléatoire de même langue que la langue aléatoire tirée (je ne sais pas si c'est clair). Je pense qu'il faudra que je fasse une comparaison ?
    Soit 3 langues A, B, C. Au départ vous êtes obligé de choisir la langue du mot à traduire. Supposons que ce soit A, la langue vers quoi traduire sera à choisir dans B, C.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  15. #15
    Nouveau membre du Club Avatar de LazyLearner
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2019
    Messages : 7
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Salut,



    Soit 3 langues A, B, C. Au départ vous êtes obligé de choisir la langue du mot à traduire. Supposons que ce soit A, la langue vers quoi traduire sera à choisir dans B, C.

    - W
    J'ai peur de ne pas avoir compris votre raisonnement

  16. #16
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 839
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par LazyLearner Voir le message
    'ai cependant quelques questions sur random. J'ai essayé de trouver une réponse sur internet, mais j'ai peur de ne pas avoir compris.
    C'est juste une librairie qui offre diverses fonctions permettant diverses actions dont on peut avoir besoin quand on fait de l'aléatoire. Il y a par exemple random.randint(x, y) qui donnera un nombre entier aléatoire entre x et y, random.randrange(x, y) qui donnera un nombre aléatoire flottant entre x et y, random.choice(seqence) qui donnera un élément de la séquence pris au hasard, random.sample(seq, k) qui donnera "k" éléments pris dans la séquence. Et etc etc etc...
    Mais bien que cette librairie offre énormément de choix, elle ne fait pas tout. Si tu as besoin d'un certain style d'aléa, c'est alors à toi de combiner les outils qu'elle te propose pour arriver à ton résultat.

    Citation Envoyé par LazyLearner Voir le message
    Mon problème est que je ne sais pas comment choisir un élement aléatoire parmi les 3 listes
    random.choice(liste1 + liste2 + liste3)
    Citation Envoyé par LazyLearner Voir le message
    il ne faut pas tomber sur un mot aléatoire de même langue que la langue aléatoire tirée (je ne sais pas si c'est clair).
    Citation Envoyé par LazyLearner Voir le message
    J'ai peur de ne pas avoir compris votre raisonnement
    Si la langue aléaoire est celle de (par exemple) la liste2, et que tu veux un mot mais donc pas issu de la liste2, alors random.choice(liste1 + liste3).
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  17. #17
    Nouveau membre du Club Avatar de LazyLearner
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2019
    Messages : 7
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    C'est juste une librairie qui offre diverses fonctions permettant diverses actions dont on peut avoir besoin quand on fait de l'aléatoire. Il y a par exemple random.randint(x, y) qui donnera un nombre entier aléatoire entre x et y, random.randrange(x, y) qui donnera un nombre aléatoire flottant entre x et y, random.choice(seqence) qui donnera un élément de la séquence pris au hasard, random.sample(seq, k) qui donnera "k" éléments pris dans la séquence. Et etc etc etc...
    Mais bien que cette librairie offre énormément de choix, elle ne fait pas tout. Si tu as besoin d'un certain style d'aléa, c'est alors à toi de combiner les outils qu'elle te propose pour arriver à ton résultat.


    random.choice(liste1 + liste2 + liste3)
    Si la langue aléaoire est celle de (par exemple) la liste2, et que tu veux un mot mais donc pas issu de la liste2, alors random.choice(liste1 + liste3).
    Merci pour la réponse, ça semble plus clair dans mon esprit. J'ai tenté ça, mais j'ai pas l'impression que ça fonctionne. Ca bug pas mais j'ai fait tourner le truc plusieurs fois et on tombe sur des mots de mêmes langue :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    def langue_aleat():
        return random.choice(liste_langues)
     
    # Fonction mot aléatoire
    def mot_aleat():
        if langue_aleat() == "Minion":
            return random.choice(liste_Chat+liste_Fr)
     
        if langue_aleat() == "Chat":
            return random.choice(liste_Minion+liste_Fr)
     
        if langue_aleat() == "Française":
            return random.choice(liste_Minion+liste_Chat)

  18. #18
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 754
    Par défaut
    Citation Envoyé par LazyLearner Voir le message
    Ca bug pas mais j'ai fait tourner le truc plusieurs fois et on tombe sur des mots de mêmes langue
    Comment ce code est-il utilisé pour retourner des résultats aussi surprenants?
    Normal que si vous l'exécutez plusieurs fois vous aurez des résultats différents et de temps en temps de la même langue...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  19. #19
    Nouveau membre du Club Avatar de LazyLearner
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2019
    Messages : 7
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Comment ce code est-il utilisé pour retourner des résultats aussi surprenants?
    Normal que si vous l'exécutez plusieurs fois vous aurez des résultats différents et de temps en temps de la même langue...

    - W
    En effet, je m'étais pas aperçue de la grosse connerie, il prenait à chaque fois une nouvelle langue aléatoire En retravaillant cela me semble marcher :

    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
    def langue_aleat():
        return random.choice(liste_langues)
     
    langue_aleat_choisie = langue_aleat()
     
    # Fonction mot aléatoire
    def mot_aleat(langue_choisie):
        if langue_aleat_choisie == "Minion":
            return random.choice(liste_mots [1]+liste_mots[2] )
     
        if langue_aleat_choisie == "Chat":
            return random.choice(liste_mots [0]+liste_mots[2])
     
        if langue_aleat_choisie == "Française":
            return random.choice(liste_mots[0]+liste_mots[1])

  20. #20
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 839
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par LazyLearner Voir le message
    En retravaillant cela me semble marcher
    En dehors de maladresses de débutant (tu n'utilises pas encore assez bien la puissance de Python pour simplifier certaines choses) qui sont tout à fait excusables, ton code s'appuie trop sur l'utilisation des variables globales ce qui est considéré par une grande majorité (et donc peut-être aussi par ton prof) comme une très mauvaise chose. Regarde ta fonction mot_aleat() qui reçoit un paramètre "langue_choisie" et qui ne l'utilise pas.
    C'est généralement mauvais pour plusieurs raisons
    • tu apprends à programmer en Python mais aussi tu apprends certains réflexes qui devront être accessibles dans d'autres langages. Si demain tu te mets à apprendre un langage qui n'offre pas les possibilités de globalisation automatique qu'offre Python, tu seras perdu n'ayant pas acquis les réflexes qui te permettent de passer des éléments de travail de fonctions en fonctions
    • tu casses l'indépendance qu'on attend d'une fonction. Une fonction doit pouvoir faire son travail quel que soit le contexte pourvu qu'on lui passes les bons éléments. Ici ta fonction s'appuie sur des variables qui lui sont extérieures. Si on la déporte dans un autre code (pourquoi pas) elle ne fonctionne plus. De même si demain tu as envie d'évoluer et de changer le nom de certaines variables, tu devras reprendre tout le code pour gérer les endroits où elles sont utilisées
    • les éléments que tu utilises au travers de tes fonctions sont mutables. Si un élément change, tu galèreras pour trouver la cause de l'erreur (qui l'a modifié ?)


    Désolé, je ne fais que te dire au préalable ce que je pense que ton prof te dira. Toutefois vaut mieux que ce soit dit à l'avance pour que tu puisses rectifier plutôt que te faire sanctionner par ton prof. Et même s'il ne te sanctionne pas, ce genre de programmation sera sanctionné par tôt ou tard (par tes collègues qui ne supporteront pas, par ton chef s'il est un ancien dev, ou même par toi-même quand tu devras faire évoluer des codes tellement noués par les variables globales utilisées dans tous les sens que tu ne sauras plus par où commencer)
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

Discussions similaires

  1. Aide résolution d'équation différentielle
    Par Dwixe dans le forum MATLAB
    Réponses: 0
    Dernier message: 02/10/2018, 16h31
  2. [AC-2010] Aide Résolution Requête SQL récursive
    Par Nouse dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 23/11/2016, 18h09
  3. ADO et aides diverses a ce sujet.
    Par Sunchaser dans le forum C++Builder
    Réponses: 6
    Dernier message: 16/02/2006, 15h06
  4. [JSP] Aide au sujet d'un projet
    Par besco dans le forum Servlets/JSP
    Réponses: 13
    Dernier message: 09/09/2004, 15h33

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