Partage
  • Partager sur Facebook
  • Partager sur Twitter

saisie d'une chaine de caractère dans une variable

Sujet résolu
    11 novembre 2014 à 14:38:13

    Bonjour,

    Quand je veux que ma variable soit égale à une chaîne de caractere écrite par l'utilisateur, j'utilise actuellement ça:

    variable = input("MA QUESTION? .S.A.I.S.I.E...) en pensant que la variable serait automatiquement égale à la saisie mais ça ne marche jamais. Vous auriez pas une autre solution à me proposer ?

    • Partager sur Facebook
    • Partager sur Twitter
      11 novembre 2014 à 14:47:37

      "ça ne marche jamais"

      C'est à dire? Ça te renvoie une erreur? Pourrais-tu donner un exemple de ce que tu entre, de ce que tu attends en sortie et de ce que tu as réellement. Quelle version de python utilises-tu?

      • Partager sur Facebook
      • Partager sur Twitter
      Précepte: Le mieux est l'ennemi du bien
        11 novembre 2014 à 15:00:02

        J'ai bien une idée, si tu oublie de fermer tes guillemets ça ne risque pas de marcher ;)

        Sinon je ne vois pas, ou alors tu as mal expliqué ton problème.

        • Partager sur Facebook
        • Partager sur Twitter
          12 novembre 2014 à 20:01:30

          Non j'ai oublié uniquement dans mon message
          • Partager sur Facebook
          • Partager sur Twitter
            12 novembre 2014 à 20:09:42

            Je réalise actuellement un code pour calculer la note du bac mais je veux utiliser la réponse de l'utilisateur à la question quel bac avez-vous pas pour ajuster les matières et coefficient en fonction. Voici mon code:

            print("Bonjour, vous pouvez calculer votre note de BAC")
            
            BAC = input("Quel BAC avez-vous passer ? ")
            if BAC.isalpha():
                if BAC == "SI":
                    from definitions_variables import SI
                    from saisie_notes import SI
                    from calcul_notes import SI
                    print("Voici votre note de BAC:", note_BAC_SI)
                else:
                    print("Nous ne calculons pas pour ce BAC")
            else:
                print("Vous ne repondez pas a notre question")



            • Partager sur Facebook
            • Partager sur Twitter
              12 novembre 2014 à 20:21:13

              Quelle est ta question? Sinon si tu veux un conseil, pour améliorer ton code (et pour éviter d'avoir des conditions à rallonge), passe par un dictionnaire (et même un double dictionnaire):

              dico_coefs = {"S-SVT" : {"Maths" : 7, "Français" : 4}} #etc...



              • Partager sur Facebook
              • Partager sur Twitter
                12 novembre 2014 à 21:03:38

                ce n'est pas mon problème qui est que mon programme plante après le saisie de l'utilisateur quoi qu'elle soit
                • Partager sur Facebook
                • Partager sur Twitter
                  12 novembre 2014 à 21:22:02

                  Tu ne nous a jamais donné l'erreur, ni ta version de python etc, comment veux tu que l'on t'aide?
                  • Partager sur Facebook
                  • Partager sur Twitter
                    12 novembre 2014 à 21:45:05

                    Désolé si je n'est pas été concis dans l'explication de mon problème je vais le réexpliquer.

                    Voilà mon code :

                    print("Bonjour, vous pouvez calculer votre note de BAC")
                    
                    BAC = input("Quel BAC avez-vous passer ? ")
                    if BAC.isalpha():
                        if BAC == "SI":
                            from definitions_variables import SI
                            from saisie_notes import SI
                            from calcul_notes import SI
                            print("Voici votre note de BAC:", note_BAC_SI)
                        else:
                            print("Nous ne calculons pas pour ce BAC")
                    else:
                        print("Vous ne repondez pas a notre question")

                     Mon problème se situe à la ligne 3 où je veux que ma variable BAC soit égale à la chaîne de caractère saisie par l'utilisateur pour que la suite du code se fasse bien en fonction du bac saisie. Mais après lorsque je teste mon code, au moment où je saisie le nom du Bac (en l’occurrence SI), voilà ce qui s'affiche:

                    Traceback (most recent call last):
                      File "C:\Python27\mini_projet_ISN\main.py.py", line 3, in <module>
                        BAC = input("Quel BAC avez-vous passer ? ")
                      File "<string>", line 1, in <module>
                    NameError: name 'SI' is not defined

                    Tu peux voir que j'utilise la version 2.7.

                    Aucun doute que je ne peux pas obtenir ce que je cherche de cette manière mais je n'en connais malheureusement pas d'autres, c'est pour ça que je sollicite votre aide.

                    Merci pour votre attention.

                    • Partager sur Facebook
                    • Partager sur Twitter
                      12 novembre 2014 à 22:04:08

                      Alors commence par virer toutes les parenthèses autour de tes prints, en 2.7 il s'agit d'un mot clé et non d'une fonction. Et ensuite, après une recherche rapide sur internet (30 secondes), il s'avère qu'input() en python 2 évalue l'entrée comme du code python, d'où ton erreur. Il suffit de le remplacer par raw_input().
                      • Partager sur Facebook
                      • Partager sur Twitter
                        12 novembre 2014 à 22:28:53

                        Ok maintenant je peux me rendre bien compte que ceci n'était pas le seul problème.
                        • Partager sur Facebook
                        • Partager sur Twitter

                        saisie d'une chaine de caractère dans une variable

                        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                        • Editeur
                        • Markdown