Partage
  • Partager sur Facebook
  • Partager sur Twitter

variable

    25 mars 2019 à 19:13:49

    script bientôt fini est  ce que c'est possible de faire VARIABLE = Function

    exemple :

    nom = os.environ['USERNAME']

    ou comment rediriger un print dans une chaine de caractere
    • Partager sur Facebook
    • Partager sur Twitter
      25 mars 2019 à 19:41:41

      juliensudre1 a écrit:

      ou comment rediriger un print dans une chaine de caractere 


      Vous feriez bien d'être plus précis dans votre demande, car c'est tout sauf cohérent...
      • Partager sur Facebook
      • Partager sur Twitter

      Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
      La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

        25 mars 2019 à 19:53:22

        ben le résultat de
        print(os.environ["USERNAME"])
         
        
        m'en servir comme une variable quoi au lieu de mettre un mot specifique dans ma chaine mettre le résultat de mon print
        • Partager sur Facebook
        • Partager sur Twitter
          25 mars 2019 à 20:09:13

          username = os.environ["USERNAME"]
          ??? :-°
          • Partager sur Facebook
          • Partager sur Twitter

          Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
          La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

            25 mars 2019 à 21:46:29

            J'ai déjà essayer mais je vais réessayer
            • Partager sur Facebook
            • Partager sur Twitter
              26 mars 2019 à 13:42:43

              username = str(os.environ["USERNAME"])
              Cela devrait marcher normalement
              • Partager sur Facebook
              • Partager sur Twitter
                26 mars 2019 à 14:18:56

                Je n'ai pas testé mais cette ligne ne renvoie pas déjà une chaîne de caractères ? Si oui, pourquoi str  ?
                • Partager sur Facebook
                • Partager sur Twitter

                Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
                La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

                  26 mars 2019 à 23:29:23

                  fred1599 a écrit:

                  Je n'ai pas testé mais cette ligne ne renvoie pas déjà une chaîne de caractères ? Si oui, pourquoi str  ?

                  Je n'avais pas checké la fonction os.environ. Mais quand on fait print(expr), Python va en fait printer la chaine de caractère donnée par str(expr). Ici, omettre le str va marcher vu que os.environ renvoie une string comme tu dis, mais dans le cas général, si tu veux avoir exactement la sortie du print, je pense que str est la bonne solution.

                  Mais oui, ici on peut s'en passer.

                  • Partager sur Facebook
                  • Partager sur Twitter
                    27 mars 2019 à 6:54:16

                    potterman28wxcv a écrit:

                    Mais quand on fait print(expr), Python va en fait printer la chaine de caractère donnée par str(expr).

                    donc pas besoin de rajouter str s'il le fait automatiquement.

                    En tout cas le contenu des clés du dictionnaire os.environ sont bien des chaînes, donc dans tous les cas, si on le sait, par principe on évite les fonctions inutiles.

                    >>> import os
                    >>> set([type(key).__name__ for key in os.environ])
                    {'str'}
                    



                    • Partager sur Facebook
                    • Partager sur Twitter

                    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
                    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

                      27 mars 2019 à 8:52:35

                      Les [] sont inutiles fred ;).
                      • Partager sur Facebook
                      • Partager sur Twitter
                        27 mars 2019 à 8:58:44

                        Oui, effectivement !
                        • Partager sur Facebook
                        • Partager sur Twitter

                        Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
                        La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

                          27 mars 2019 à 9:24:48

                          En fait je n'ai jamais compris pourquoi on parle tout le temps (et que) de compréhension de liste, alors qu'on a les compréhensions de set, de dict.... tout objet qui s'initialise avec un itérable en fait.
                          • Partager sur Facebook
                          • Partager sur Twitter
                            27 mars 2019 à 9:38:24

                            C'est plus conceptuel, je pense... imaginons qu'on veuille créer un plateau de jeu, logiquement tu travaillerais sans doute plus avec des listes qu'avec des dictionnaires, non ?

                            Souvent la conception est prédestinée à amener vers une solution avec des listes, c'est pourquoi on en parle beaucoup. C'est donc moins évident de penser que les autres types de données existent ou se créent de la même manière que des listes.

                            • Partager sur Facebook
                            • Partager sur Twitter

                            Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
                            La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

                              27 mars 2019 à 12:31:22

                              Possible oui. Mais le fait est que je vois souvent, et y compris dans des codes de framework à bonne réputation, des choses comme :

                              {[a for a in foo]}

                              ou

                              function([a for a in foo])  # appelé sur des fonctions qui supportent tout itérable

                              alors que ça fait perdre un peu de perf.

                              Donc je pense que pas mal de dev pensent que ça marche seulement avec listes. Il y a des trucs comme ça qui sont reproduit partout.
                              Un peu comme la déclaration de coding que l'on voit partout, y compris dans les bons tuto, avec les -*- inutiles. Je n'ai jamais vu de tuto en français qui ne transmet pas ce truc bidon.

                              -
                              Edité par thelinekioubeur 27 mars 2019 à 12:32:44

                              • Partager sur Facebook
                              • Partager sur Twitter
                                27 mars 2019 à 13:31:29

                                Ben...

                                username = os.environ['USERNAME']

                                ?

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  27 mars 2019 à 13:49:31

                                  fred1599 a écrit:

                                  potterman28wxcv a écrit:

                                  Mais quand on fait print(expr), Python va en fait printer la chaine de caractère donnée par str(expr).

                                  donc pas besoin de rajouter str s'il le fait automatiquement.

                                  Etant donné une expression expr, faire

                                  var = str(expr)

                                  Te permettra d'avoir la chaine de caractère telle qu'elle est affichée par un

                                  print(expr)

                                  Par contre, oui, écrire print(str(expr)) est inutile.

                                  juliensudre1 a écrit:

                                  ben non sa ne marche pas

                                  Pourquoi ?

                                  -
                                  Edité par potterman28wxcv 27 mars 2019 à 13:51:43

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    27 mars 2019 à 13:57:09

                                    et ça ?

                                    username = os.environ.get("USERNAME", "Ah bah non, la clé USERNAME n'existe pas")
                                    print(username)


                                    environ n'est pas une fonction, mais un objet similaire à un dictionnaire

                                    -
                                    Edité par thelinekioubeur 27 mars 2019 à 14:00:44

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      27 mars 2019 à 14:16:11

                                      thelinekioubeur a écrit:

                                      et ça ?

                                      username = os.environ.get("USERNAME", "Ah bah non, la clé USERNAME n'existe pas")
                                      print(username)


                                      environ n'est pas une fonction, mais un objet similaire à un dictionnaire

                                      -
                                      Edité par thelinekioubeur il y a 14 minutes

                                      merci cela marche nickel j'apprend au fur et a mesure il me manque plus que sa et la je le compile et en fait un ex que je partagerai

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        27 mars 2019 à 15:56:15

                                        @julien,

                                        Il faut être précis et ne pas dire juste ça ne fonctionne pas... Il n'est pas compliqué de faire un copier coller du traceback de l'interpréteur.

                                        D'ailleurs si tu nous expliquais le résultat que tu as eu après la commande de @thelinekioubeur ?  ;)

                                        @potterman,

                                        Quelle différence visuelle entre afficher print('1') et print(1) ?

                                        >>> print(1)
                                        1
                                        >>> print('1')
                                        1
                                        

                                        Aucune, car les objets python ont tous une méthode __str__ qui leur sont propre, et donc la fonction str est appliquée.

                                        class Example:
                                            def __init__(self):
                                                # ...
                                        
                                            def __str__(self):
                                                return str(self)
                                        
                                            __repr__ = __str__

                                        ce qui permet l'utilisation de print sans avoir ce besoin d'utiliser la fonction str.

                                        • Partager sur Facebook
                                        • Partager sur Twitter

                                        Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
                                        La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

                                          27 mars 2019 à 16:11:27

                                          fred1599 a écrit:

                                          @potterman,

                                          Quelle différence visuelle entre afficher print('1') et print(1) ?

                                          >>> print(1)
                                          1
                                          >>> print('1')
                                          1
                                          

                                          Aucune, car les objets python ont tous une méthode __str__ qui leur sont propre, et donc la fonction str est appliquée.

                                          class Example:
                                              def __init__(self):
                                                  # ...
                                          
                                              def __str__(self):
                                                  return str(self)
                                          
                                              __repr__ = __str__

                                          ce qui permet l'utilisation de print sans avoir ce besoin d'utiliser la fonction str.


                                          Bien sûr. Mais ça n'a rien à voir avec ce que je suis en train de dire depuis le début.

                                          Si tu veux capturer dans une variable l'affichage d'un print , dans le cas général, tu dois utiliser str

                                          A noter que je réponds à la question initiale qui était : "comment rediriger un print dans une chaine de caractere "

                                          Il est bien sûr évident que faire

                                          print(str(expr))

                                          Est absolument inutile. Et ce n'est d'ailleurs pas de quoi je parle. Je parle bien de faire :

                                          var = str(expr) # Met dans var ce qu'un print(expr) afficherait

                                          Je le répète peut-être encore une troisième fois : je n'ai jamais indiqué qu'il faut faire print(str(expr)). Et oui, print(str(expr)) et print(expr) c'est bel et bien la même chose. La question n'est pas là.

                                          @all : désolé de l'apparté


                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            28 mars 2019 à 13:31:55

                                            le résultat que j’avais c'est nameerror sur usurname car il n’était pas définie

                                            est vous inquiéter pas j’ai essayer plusieurs truc avant de venir vous j’appends au fil du temps c'est pour sa que je viens ici je suis pas un professionnel mais j'avoue que python me plait

                                            d'ailleur j'ai une autre erreur dans une autre fonction dans un autre script

                                            os.system('net localgroup RETAIL utilisateur /add')
                                            
                                            jessaye sa 


                                            et vila le resultat

                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              28 mars 2019 à 13:35:25

                                              La commande fonctionne en dehors de python ? (non)
                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                28 mars 2019 à 14:11:24

                                                oui si je met le vrai nom d'utilisateur et pas ma variable
                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  28 mars 2019 à 15:13:26

                                                  Si tu veux que "utilisateur" soit remplacé par le contenu de la variable, tu peux utiliser la méthode .format() :

                                                  "net localgroup RETAIL {usr} /add".format(usr=utilisateur)



                                                  • Partager sur Facebook
                                                  • Partager sur Twitter

                                                  Blond, bouclé, toujours le sourire aux lèvres...

                                                    28 mars 2019 à 15:28:39

                                                    d'accord merci je ne connait pas encore ttes les fonctions mais bon c'est gentil jai juste une erreur de syntaxe

                                                    derriére

                                                    -
                                                    Edité par juliensudre1 28 mars 2019 à 15:38:23

                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      28 mars 2019 à 16:36:57

                                                      Poste le code et le message d'erreur si tu as besoin d'aide sur cette erreur de syntaxe, sans ça on peut rien faire.
                                                      • Partager sur Facebook
                                                      • Partager sur Twitter

                                                      Blond, bouclé, toujours le sourire aux lèvres...

                                                        28 mars 2019 à 17:04:51

                                                        @potterman,

                                                        Si on souhaitait faire ce transfert print -> variable, alors la fonction print le permet,

                                                        >>> import io
                                                        >>> f = io.StringIO()
                                                        >>> print('test', file=f)
                                                        >>> f.getvalue()
                                                        'test\n'
                                                        



                                                        • Partager sur Facebook
                                                        • Partager sur Twitter

                                                        Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
                                                        La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

                                                          28 mars 2019 à 17:48:08

                                                          @fred mais pourquoi faire si compliqué ? Si on veut le représentation en string d'un objet tel qu'affiché par print, str(obj) suffit

                                                          • Partager sur Facebook
                                                          • Partager sur Twitter

                                                          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