Partage
  • Partager sur Facebook
  • Partager sur Twitter

Interpréteur python sous linux

Anonyme
    19 novembre 2017 à 21:06:02

    Bonsoir, je commence depuis quelques temps à apprendre le langage python sur linux et j'ai un problème de syntax. En fait j'ai déjà remarqué que sous windows j'ai tester un code qui ne fonctionnait pas sous linux javais une erreur de syntax dans le terminal mais sous windows ce même code fonctionne très bien et la sa recommence à me le faire alors que j'ai vérifié la version de python qui est la 3.6 donc la dernière je ne comprend pas pourquoi??

    Voici le code qui ne fonctionne pas:

    #-*-coding:utf8-*-
    #/usr/bin/python3.6
    
    def table(nombre):
            for i in range(10):
                    print("{0} * {1} = {2}" format(i, nombre, i*nombre))
    
    table(2) 

    Tout à l'heure la fonction .isdigit ne fonctionnait pas non plus ... Normalement l'interpréteur python sous linux est le même que sous windows non ?


    -
    Edité par Anonyme 19 novembre 2017 à 21:11:06

    • Partager sur Facebook
    • Partager sur Twitter
      19 novembre 2017 à 21:33:36

      Non je crois qu'ils diffèrent, voilà pour Linux (ici)

      -
      Edité par PapierPeintNoirFoncéAvecDesNuancesDeGris 19 novembre 2017 à 21:34:00

      • Partager sur Facebook
      • Partager sur Twitter
      Seul le sage sait combien il sait peu.
        19 novembre 2017 à 21:53:39

        Il est pas différent, le langage je veux dire, mais il y a deux versions majeures Python2 et Python3.

        Il est possible que seul Python2 soit installé par défaut, il faut donc installer Python3 et ensuite il faudra lancer le script avec la commande python3 au lieu de python tout court.

        -
        Edité par LoupSolitaire 19 novembre 2017 à 21:54:16

        • Partager sur Facebook
        • Partager sur Twitter

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

        Anonyme
          19 novembre 2017 à 22:10:51

          Je viens d'essayer avec la commande python3 mais j'ai aussi syntax error. Je vois que j'ai python 3.6 et 2.7.14 d'installer du coup j'ai essayer de supprimer la vieille version en tapant la commande

          sudo apt-get remove --purge python2.7.14 mais il me dit qu'il ne trouve pas le paquet...

          • Partager sur Facebook
          • Partager sur Twitter
            19 novembre 2017 à 23:18:03

            Supprime pas l'ancienne version, il peut y avoir des programmes qui en dépendent.

            Est-ce que l'erreur est la même avec python3 ? Parce qu'il y a peut-être vraiment une erreur dans ton code ?

            • Partager sur Facebook
            • Partager sur Twitter

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

              20 novembre 2017 à 9:19:16

              As-tu essayé:

              def table(nombre):
                      for i in range(10):
                              print("{0} * {1} = {2}".format(i, nombre, i*nombre))
               
              table(2)

              Il s'agit d'orienter objet, tu fais appel à la méthode format de la classe String. Sans le point je ne vois pas comment cela peut marcher.

              • Partager sur Facebook
              • Partager sur Twitter
                20 novembre 2017 à 9:45:33

                Oui, le code que tu as donné présente une erreur de syntaxe, il ne fonctionnerait pas non plus sous Windows.

                • Partager sur Facebook
                • Partager sur Twitter
                Anonyme
                  20 novembre 2017 à 11:52:02

                  J'ai trouvé l'erreur, en fait c'est la 2ème ligne quand j'ai mis #/usr/bin/python3.6, j'ai oublié "!". Donc j'ai corrigé en mettant #!/usr/bin/python3.6 et maintenant sa fonctionne !

                  Et oui en effet j'avais aussi oublié le point dans la fonction format mais c'est bon tout est correctement corrigé, et d'ailleur j'ai tester avec les deux commandes : "python index.py" et "python3 index.py" les deux marches ! :)

                  -
                  Edité par Anonyme 20 novembre 2017 à 11:55:11

                  • Partager sur Facebook
                  • Partager sur Twitter
                  Anonyme
                    20 novembre 2017 à 12:00:37

                    Hackillaone a écrit:

                    J'ai trouvé l'erreur, en fait c'est la 2ème ligne quand j'ai mis #/usr/bin/python3.6, j'ai oublié "!". Donc j'ai corrigé en mettant #!/usr/in/python3.6 et maintenant sa fonctionne !


                    Je suis perplexe... Cette fameuse ligne est ce que l'on appel le shebang, c'est un commentaire qui est ignoré par Python et utilisé par le lanceur du script (bash et autre sur Unix, et py.exe sur Windows) pour déterminer quel programme doit interpréter le script. Et il me semble qu'elle doit forcément être la première ligne du script, pas la deuxième.

                    La deuxième ligne est la déclaration d'encodage du fichier, c'est Python qui doit pouvoir la comprendre. Si tu utilise Python 3, inutile de préciser l'encodage UTF-8 car c'est celui par défaut.

                    -
                    Edité par Anonyme 20 novembre 2017 à 12:03:25

                    • Partager sur Facebook
                    • Partager sur Twitter
                      20 novembre 2017 à 14:13:24

                      IdiotBête_ a écrit:

                      Hackillaone a écrit:

                      J'ai trouvé l'erreur, en fait c'est la 2ème ligne quand j'ai mis #/usr/bin/python3.6, j'ai oublié "!". Donc j'ai corrigé en mettant #!/usr/in/python3.6 et maintenant sa fonctionne !


                      Je suis perplexe... Cette fameuse ligne est ce que l'on appel le shebang, c'est un commentaire qui est ignoré par Python et utilisé par le lanceur du script (bash et autre sur Unix, et py.exe sur Windows) pour déterminer quel programme doit interpréter le script. Et il me semble qu'elle doit forcément être la première ligne du script, pas la deuxième.

                      La deuxième ligne est la déclaration d'encodage du fichier, c'est Python qui doit pouvoir la comprendre. Si tu utilise Python 3, inutile de préciser l'encodage UTF-8 car c'est celui par défaut.

                      -
                      Edité par IdiotBête_ il y a environ 1 heure


                      Je pense que le problème venait du '.' manquant et non du '!'. Lorsqu'il lance l'interpréteur python, ce dernier va juste ignoré la ligne #/usr... comme si c'était un commentaire.

                      Aussi, tu as raison de dire que la ligne #/usr/bin/python3.6 doit se trouver au début du fichier, sinon la ligne #-*-coding:utf8-*- ne sera pas lu l'interpréteur python et cela causera des erreurs si tu utilises des caractère tel que 'é','à'...

                      Dans cette situation ce n'est que deux lignes inutiles vu qu'il appelle l'interpréteur dans le terminal et qu'il n'a pas de caractère spéciaux.

                      La ligne #/usr/bin/python3.6 est utile dans le cas de scripts que l'on veux exécuter directement. On le rend exécutable et on l'appelle.

                      • Partager sur Facebook
                      • Partager sur Twitter
                      Anonyme
                        20 novembre 2017 à 23:10:49

                        Très certainement oui! Mais cette ligne n'est pas là pour appelé le langage afin qu'il reconnaisse les fonctions pour éviter qu'il mette undefined index ou autre message d'erreur par rapport à une fonction non reconnu?
                        • Partager sur Facebook
                        • Partager sur Twitter

                        Interpréteur python sous linux

                        × 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