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 ?
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
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...
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 !
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.
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.
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?
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.
Blond, bouclé, toujours le sourire aux lèvres...
Blond, bouclé, toujours le sourire aux lèvres...
entwanne — @entwanne — Un zeste de Python — La POO en Python — Notions de Python avancées — Les secrets d'un code pythonique