#1 Le 27/05/2016, à 17:22
- turblad
[Résolu] Problème Geany-Python-Terminal sous Ubuntu
Bonjour à tous
Je débute le cours Python de OpenClassrooms. Voici mon problème :
Je suis sous Linux Ubuntu, et j'utilise l'éditeur Geany. Mon souci étant purement technique, je ne demande pour l'instant aucune appréciation concernant mon programme lui-même (je n'ai pas consulté le corrigé) à moins qu'il ne soit à l'origine du bug.
J'en suis au premier exercice (ZCasino) dont voici mon début en cours de développement :
#!/usr/bin/python3.5
# -*- coding: utf-8 -*-
def mon_choix ():
"""Permet de choisir le numéro sur lequel vous souhaitez miser"""
dp = True
while dp :
entree = input('Choisissez un numéro entre 0 et 49 (inclus): ')
try:
numero = int (entree)
except ValueError:
print ('Vous n\'avez pas choisi un nombre')
continue
if numero < 0 or numero > 49:
print ('Le nombre que vous avez choisi n\'est pas dans l\'intervalle 0 - 49')
else:
dp = False
return numero
mon_numero = mon_choix()
print ('Vous jouez sur le numéro ',mon_numero)
print ('Le jeu est terminé, vous n\'avez plus d\'argent !')
input()
Si je lance le programme par double clic "lancer dans un terminal", tout semble fonctionner comme l'indique la capture ci-dessous -l'erreur choisie "( représente le cas typique de l'utilisateur qui aurait tapé 35 sur un clavier de portable sans la touche maj- :
Choisissez un numéro entre 0 et 49 (inclus): "(
Vous n'avez pas choisi un nombre
Choisissez un numéro entre 0 et 49 (inclus): 56
Le nombre que vous avez choisi n'est pas dans l'intervalle 0 - 49
Choisissez un numéro entre 0 et 49 (inclus): 25
Vous jouez sur le numéro 25
Le jeu est terminé, vous n'avez plus d'argent !
Si je le lance par la touche F5 ou la barre d'outil de Geany, j'obtiens ceci :
Choisissez un numéro entre 0 et 49 (inclus): "(
Traceback (most recent call last):
File "ZCasino_2.py", line 23, in <module>
mon_numero = mon_choix()
File "ZCasino_2.py", line 9, in mon_choix
entree = input('Choisissez un numéro entre 0 et 49 (inclus): ')
File "<string>", line 1
"(
^
SyntaxError: EOL while scanning string literal
Et comme cette approche est logique depuis l'éditeur, voici 8 jours que je cherche l'origine des erreurs de mon programme qui semble fonctionner (il fonctionne aussi parfaitement dans la console).
Mes recherches semblent indiquer que le bug viendrait de la manière dont Geany appelle le terminal :
[tools]
terminal_cmd=x-terminal-emulator -e "/bin/sh %c"
Mais voilà je ne suis pas assez fort pour savoir par quoi remplacer.
Un grand merci d'avance à ceux qui ont eu le même problème et surtout sa solution !
Dernière modification par turblad (Le 28/05/2016, à 01:02)
Il nous fallut bien du talent pour être vieux sans être adulte
Jacques Brel (chanson des vieux amants)
Hors ligne
#2 Le 27/05/2016, à 22:58
- soshy
Re : [Résolu] Problème Geany-Python-Terminal sous Ubuntu
Salut,
Mes recherches semblent indiquer que le bug viendrait de la manière dont Geany appelle le terminal
Raté ! Le problème c'est que la version de python executé par le terminal c'est python 3.x (a cause du début de ton fichier) alors que la version utilisée avec geany c'est 2.x (a cause de la configuration de geany).
Ca se voit assez bien en exécutant ton programme avec les 2 lignes que j'ai rajouté :
#!/usr/bin/python3.5
# -*- coding: utf-8 -*-
import sys
def mon_choix ():
"""Permet de choisir le numéro sur lequel vous souhaitez miser"""
dp = True
while dp :
entree = input('Choisissez un numéro entre 0 et 49 (inclus): ')
try:
numero = int (entree)
except ValueError:
print ('Vous n\'avez pas choisi un nombre')
continue
if numero < 0 or numero > 49:
print ('Le nombre que vous avez choisi n\'est pas dans l\'intervalle 0 - 49')
else:
dp = False
return numero
print(sys.version)
mon_numero = mon_choix()
print ('Vous jouez sur le numéro ',mon_numero)
print ('Le jeu est terminé, vous n\'avez plus d\'argent !')
input()
En version 3, la commande input équivaut à raw_input en version 2. Et input tout court en version 2 comme ça fait pas la meme chose qu'en version 3 tu constates effectivement un comportement différent !
La solution c'est donc de dire a geany d'utiliser python3. Voir comment faire ici
Dernière modification par soshy (Le 27/05/2016, à 23:06)
Hors ligne
#3 Le 28/05/2016, à 00:55
- turblad
Re : [Résolu] Problème Geany-Python-Terminal sous Ubuntu
J'y avais pensé mais je croyais qu'en remplaçant le shebang auto de geany :
#!/usr/bin/env python
par celui-ci :
#!/usr/bin/python3.5
ça serait suffisant.
Raté
Je ne connaissais pas "raw_input" parce que je découvre Python. À 68 ans, informatique amateur ce n'est pas forcément évident.
Très, très grand MERCI.
Je mets en résolu
Il nous fallut bien du talent pour être vieux sans être adulte
Jacques Brel (chanson des vieux amants)
Hors ligne