Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2416 connectés 

  FORUM HardWare.fr
  Programmation
  Python

  bonjour, problème synthax python sous idle

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

bonjour, problème synthax python sous idle

n°2148239
xJOEx
Posté le 05-07-2012 à 11:48:27  profilanswer
 

Bonjour, pouvez vous m'aider svp ?
 
Voila, je viens de me mettre à python sous IDLE, je suis sous windows 7.
Je suis les cours de pythonnerie et je viens de créer mon premier programme :
 
# Premier programme python
nom = raw_input("Quel est ton nom ? " )
print 'Bonjour ' + nom + '!'
raw_input('Appuyez pour fermer')
 
mais lorsque je lance ce programme en cliquant dessus, l'invite de commande apparaît en moins d'une seconde et j'ai pu lire "invalid synthax".
Comment puis je faire pour lancer mon programme correctement ?
 
Cordialement

mood
Publicité
Posté le 05-07-2012 à 11:48:27  profilanswer
 

n°2148240
xJOEx
Posté le 05-07-2012 à 11:54:12  profilanswer
 

Je viens de lancer mon programme sous python shell et voici le message qui apparaît  :
 
Traceback (most recent call last):
  File "D:\Users\Documents\Mes Docs\Python\ESSAIS\premierprogrammepython.py", line 2, in <module>
    nom = raw_input("Quel est ton nom ? " )
NameError: name 'raw_input' is not defined
 
Comment alors définir 'raw_input' ?
 
Cordialement

n°2148242
xJOEx
Posté le 05-07-2012 à 12:01:38  profilanswer
 

Comme je suis sous python 3, j'ai trouvé sur internet que je devais remplacer raw_input par input, c'est ce que j'ai fait...
Mais maintenant voici ce que me met python shell lorsque je lance le programme :  
 
Quel est ton nom ? joe
Appuyez pour fermer
 
Il oublie donc d'afficher "Bonjour joe !"
 
Que dois je faire ?
 
script :
 
# Premier programme python
nom = input("Quel est ton nom ? " )
print = "Bonjour " + nom + "!"
input('Appuyez pour fermer')

n°2148244
xJOEx
Posté le 05-07-2012 à 12:21:13  profilanswer
 

Problème résolu :
 
# Premier programme python
nom = input('Quel est ton nom? ')
print ('bonjour ' + nom + '!')
input("appuie pour fermer" )
 
--' désolé je débute ...

n°2148246
xJOEx
Posté le 05-07-2012 à 12:43:36  profilanswer
 

Voici un autre de mes premiers programme, pouvez vous m'indiquer les fautes svp ?
 
 
script:
 
# Programme Calculer Delta
print ("Determiner DELTA d'une fonction du type ax²+bx+c" )
a = input("Entrez a : " )
b = input("Entrez b : " )
c = input("Entrez c : " )
print ("a vaut " + a + " , b vaut " + b + " et c vaut " + c)
print ("mais quelle est la valeur de x ?" )
x = input("Entrez x : " )
print ("x vaut " + x)
input("Appuyez sur une touche pour calculer DELTA..." )
int(a)
int(b)
int(c)
int(x)
float(a)
float(b)
float(c)
float(x)
D = b*b-4*a*c
print ("DELTA a pour valeur : " + str(D))
input("Appuyez sur une touche pour quitter..." )
 
python shell:
 
Determiner DELTA d'une fonction du type ax²+bx+c
Entrez a : 3
Entrez b : 2
Entrez c : 1
a vaut 3 , b vaut 2 et c vaut 1
mais quelle est la valeur de x ?
Entrez x : 4
x vaut 4
Appuyez sur une touche pour calculer DELTA...
Traceback (most recent call last):
  File "C:\Users\Joe\Desktop\DELTA.py", line 19, in <module>
    D = b*b-4*a*c
TypeError: can't multiply sequence by non-int of type 'str'
 
Cordialement.

n°2148305
Profil sup​primé
Posté le 05-07-2012 à 16:31:39  answer
 

Bonjour, je ne connais pas python, mais si tu fais :

Code :
  1. D = float(b*b-4*a*c)


plutôt que :

Code :
  1. D = b*b-4*a*c


 
Est-ce que ça passe ?

n°2148331
masklinn
í dag viðrar vel til loftárása
Posté le 05-07-2012 à 18:17:01  profilanswer
 

xJOEx a écrit :

Voici un autre de mes premiers programme, pouvez vous m'indiquer les fautes svp ?
 
 
script:
 
# Programme Calculer Delta
print ("Determiner DELTA d'une fonction du type ax²+bx+c" )
a = input("Entrez a : " )
b = input("Entrez b : " )
c = input("Entrez c : " )
print ("a vaut " + a + " , b vaut " + b + " et c vaut " + c)
print ("mais quelle est la valeur de x ?" )
x = input("Entrez x : " )
print ("x vaut " + x)
input("Appuyez sur une touche pour calculer DELTA..." )
int(a)
int(b)
int(c)
int(x)
float(a)
float(b)
float(c)
float(x)
D = b*b-4*a*c
print ("DELTA a pour valeur : " + str(D))
input("Appuyez sur une touche pour quitter..." )
 
python shell:
 
Determiner DELTA d'une fonction du type ax²+bx+c
Entrez a : 3
Entrez b : 2
Entrez c : 1
a vaut 3 , b vaut 2 et c vaut 1
mais quelle est la valeur de x ?
Entrez x : 4
x vaut 4
Appuyez sur une touche pour calculer DELTA...
Traceback (most recent call last):
  File "C:\Users\Joe\Desktop\DELTA.py", line 19, in <module>
    D = b*b-4*a*c
TypeError: can't multiply sequence by non-int of type 'str'
 
Cordialement.


La fonction input (ou raw_input pour Python 2) ne renvoie que des chaînes de caractères. Effectuer des opérations arithmétiques sur des chaînes n'est pas correct, il faut d'abord les convertir en nombres (entiers ou réels selon qu'ils sont dans N ou R).
 
Accessoirement, qu'attends-tu de cette séquence bizarre:

Code :
  1. int(a)
  2. int(b)
  3. int(c)
  4. int(x)
  5. float(a)
  6. float(b)
  7. float(c)
  8. float(x)


exactement?


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°2148447
xJOEx
Posté le 06-07-2012 à 15:14:31  profilanswer
 

Merci de votre aide, j'ai pu résoudre mon problème et améliorer mon programme un peu...Tout fonctionne =)
script:
 
 
# Programme Calculer Delta
print ("Determiner DELTA d'une fonction du type ax²+bx+c" )
a = float(input("Entrez a : " ))
b = float(input("Entrez b : " ))
c = float(input("Entrez c : " ))
print ("a vaut " + str(a) + " , b vaut " + str(b) + " et c vaut " + str(c))
print ("mais quelle est la valeur de x ?" )
x = float(input("Entrez x : " ))
print ("x vaut " + str(x))
input("Appuyez sur une touche pour calculer DELTA..." )
D = b*b-4*a*c
print ("DELTA a pour valeur : " + str(D))
input("Appuyez sur une touche pour trouver les solutions..." )
if D < 0:
    print("DELTA (",str(D)," ) est inferieur a 0, donc\nl'ensemble solution est un ensemble vide." )
    print("" )
    print("Programme termine" )
    input("Appuyez sur une touche pour fermer le programme." )
if D == 0:
    print("DELTA (",str(D)," ) est egal a 0, donc\nl'ensemble solution a une solution." )
    s = -c/a
    print("Sa solution est x1 = " + str(s))
    print("" )
    print("Programme termine" )
    input("Appuyez sur une touche pour fermer le programme." )
if D > 0:
    print("DELTA (",str(D)," ) est superieur a 0, donc\nl'ensemble solution a deux solutions." )
    s1 = (-b-float(D)/float(D))/2*a
    s2 = (-b+float(D)/float(D))/2*a
    print("Ses solutions sont x1 = " + str(s1) + " et x2 = " + str(s2))
    print("" )
    print("Programme termine" )
    input("Appuyez sur une touche pour fermer le programme." )
 
 
Cordialement

n°2148452
xJOEx
Posté le 06-07-2012 à 15:43:42  profilanswer
 

Je suis les cours de pythonneries qui sont eux effectués sous python 2.7. Ma version de python est 3.2, c'est pour cela qu'il y avait quelques erreurs.
J'ai téléchargé la version 2.7 et tout fonctionne maintenant.

n°2148455
xJOEx
Posté le 06-07-2012 à 15:49:30  profilanswer
 

Je sais que je raconte sûrement ma vie et qu'elle n'intéresse personne mais j'apprends le python car je passe en Terminal S SI avec la spécialité ISN (Informatique et Sciences du Numérique) et les professeurs qui nous ont présenté cette spécialité nous ont parlé de langage python, que l'on ferait de la programmation algorithmique en python. Donc j'ai décidé de m'avancer un peu pendant les vacances.  
Si vous avez quelques conseils à me donner, je suis preneur. =)
 
Merci à vous.
Cordialement.


---------------
L'informatique est ma passion et je m'y intéresse de très prêt.
mood
Publicité
Posté le 06-07-2012 à 15:49:30  profilanswer
 

n°2148533
xJOEx
Posté le 07-07-2012 à 17:07:58  profilanswer
 

Je suis content, je viens de terminer mon deuxième programme python. je l'ai appelé Programme Placement/Intérêts.
 

Code :
  1. # -*- coding: cp1252 -*-
  2. ### Programme Placement/Interets
  3. ### By Joe - 07/07/2012
  4. ### Modifiez le si vous avez envi et partagez votre résultat =)
  5. print ('Ce programme vous permettera de visualiser vos interets grace a un placement.')
  6. print ('\nPour stopper le programme, cliquez sur la croix en haut a droite.')
  7. print
  8. raw_input('Pour commencer le programme, appuyez sur une <ENTRER>...')
  9. print
  10. P = float(raw_input("Veuillez entrer votre sommes d'argent a placer (ne mettez pas le signe €) : " ))
  11. print
  12. TI = float(raw_input("Veuillez indiquer le taux d'interet du placement (ne mettez pas le signe %) : " ))
  13. print
  14. print ('Vous voulez donc placer '+str(P)+" € sur un compte qui vous rapportera "+str(TI)+" % d'interet par an." )
  15. print
  16. R = float(0)
  17. A = int(raw_input("En quelle année sommes nous ? " ))
  18. while (A<2050):
  19.     A = A + 1
  20.     P = P + R
  21.     P = P + P*TI/100
  22.     print
  23.     print ('En '+str(A)+', vous aurez sur votre compte : '+str(P)+' € .')
  24.     print
  25.     print ("Combien d'euros voulez-vous ajouter a votre compte cette annee la ?" )
  26.     R = float(raw_input("Si vous ne voulez pas en rajouter, entrez 0 : " ))
  27.     print           
  28.     raw_input("Pour voir la somme d'argent sur votre compte l'annee suivante, appuyez sur <ENTRER>..." )
  29.     print
  30. raw_input('Fin')


 
Dites moi ce que vous en pensez s'il vous plaît =).
Cordialement


---------------
L'informatique est ma passion et je m'y intéresse de très prêt.
n°2148535
masklinn
í dag viðrar vel til loftárása
Posté le 07-07-2012 à 17:20:59  profilanswer
 

xJOEx a écrit :

Je suis content, je viens de terminer mon deuxième programme python. je l'ai appelé Programme Placement/Intérêts.
 

Code :
  1. # -*- coding: cp1252 -*-
  2. ### Programme Placement/Interets
  3. ### By Joe - 07/07/2012
  4. ### Modifiez le si vous avez envi et partagez votre résultat =)
  5. print ('Ce programme vous permettera de visualiser vos interets grace a un placement.')
  6. print ('\nPour stopper le programme, cliquez sur la croix en haut a droite.')
  7. print
  8. raw_input('Pour commencer le programme, appuyez sur une <ENTRER>...')
  9. print
  10. P = float(raw_input("Veuillez entrer votre sommes d'argent a placer (ne mettez pas le signe €) : " ))
  11. print
  12. TI = float(raw_input("Veuillez indiquer le taux d'interet du placement (ne mettez pas le signe %) : " ))
  13. print
  14. print ('Vous voulez donc placer '+str(P)+" € sur un compte qui vous rapportera "+str(TI)+" % d'interet par an." )
  15. print
  16. R = float(0)
  17. A = int(raw_input("En quelle année sommes nous ? " ))
  18. while (A<2050):
  19.     A = A + 1
  20.     P = P + R
  21.     P = P + P*TI/100
  22.     print
  23.     print ('En '+str(A)+', vous aurez sur votre compte : '+str(P)+' € .')
  24.     print
  25.     print ("Combien d'euros voulez-vous ajouter a votre compte cette annee la ?" )
  26.     R = float(raw_input("Si vous ne voulez pas en rajouter, entrez 0 : " ))
  27.     print           
  28.     raw_input("Pour voir la somme d'argent sur votre compte l'annee suivante, appuyez sur <ENTRER>..." )
  29.     print
  30. raw_input('Fin')


 
Dites moi ce que vous en pensez s'il vous plaît =).
Cordialement


  • Le nommage des variables est imbitable (accessoirement, en python les noms de variables sont généralement en casse basse)
  • La condition du while n'a pas besoin de parenthèses
  • R = float(0) ne sert à rien, R = 0 suffit, ou R = 0. à la limite
  • Les intérêts devraient probablement être composés, dans la mesure où tu ne gères pas vraiment le retrait
  • Je suggère un meilleur éditeur et écrire en utf-8
  • Pour faire des utilitaires type mini-shell, tu devrais regarder du côté du module cmd de la stdlib.


Message édité par masklinn le 07-07-2012 à 21:49:30

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°2148546
xJOEx
Posté le 07-07-2012 à 21:18:31  profilanswer
 

Oui, je vais prendre en compte tes 4 premiers points parce que les 2 derniers, je ne l'ai pas compris dsl ^^.
 
Cordialement et merci.


---------------
L'informatique est ma passion et je m'y intéresse de très prêt.
n°2148547
masklinn
í dag viðrar vel til loftárása
Posté le 07-07-2012 à 21:49:34  profilanswer
 

xJOEx a écrit :

Oui, je vais prendre en compte tes 4 premiers points parce que les 2 derniers, je ne l'ai pas compris dsl ^^.

 

Cordialement et merci.


http://docs.python.org/library/cmd.html
http://blog.doughellmann.com/2008/05/pymotw-cmd.html

Code :
  1. # -*- coding: utf-8 -*-
  2. import cmd, datetime
  3.  
  4. START_YEAR = datetime.date.today().year
  5. class Interests(cmd.Cmd):
  6.    prompt = '> '
  7.    intro = """Ce programme permet de visualiser les intérêts d'un placement annuel
  8.    
  9.    L'année peut être changée avec la commande "annee"
  10.    Le contenu du compte peut être imprimé avec la commande "somme"
  11.    Le contenu du compte peut être changé avec les commandes "ajouter" et "retirer"
  12.    Le taux peut être changé avec la commande "taux"
  13.    Le programme peut être réinitialisé à ses valeurs de départ avec la commande "reinitialiser"
  14.  
  15.    Le compte commence à 0, à l'année %d, avec un taux de 0
  16.    """ % (START_YEAR)
  17.  
  18.    def __init__(self):
  19.        cmd.Cmd.__init__(self)
  20.        self.onecmd('reinitialiser')
  21.  
  22.    def do_reinitialiser(self, _):
  23.        """ reinitialiser
  24.  
  25.        Réinitialise le programme: année %d, compte vide et taux à 0
  26.        """ % (START_YEAR)
  27.        self.amount = 0.0
  28.        self.rate = 0
  29.        self.year = START_YEAR
  30.        
  31.    def do_annee(self, year):
  32.        """ annee <année>
  33.  
  34.        Déplace le compte dans le temps, à l'année indiquée, en
  35.        appliquant les intérêts actuels
  36.        """
  37.        if not year:
  38.            print (self.year)
  39.            return
  40.        year = int(year)
  41.        if year < self.year:
  42.            print ("Le retour dans le temps n'est pas possible" )
  43.            return
  44.        
  45.        self.amount *= (1 + self.rate)**(year - self.year)
  46.        self.year = year
  47.  
  48.    def do_somme(self, amount):
  49.        """ somme [somme]
  50.  
  51.        Imprime la somme actuellement contenue dans le placement.
  52.  
  53.        Si une somme est spécifiée, remplace le contenu actuel du
  54.        compte.
  55.        """
  56.        if not amount:
  57.            print (self.amount)
  58.            return
  59.        
  60.        self.amount  = float(amount)
  61.    def do_ajouter(self, amount):
  62.        """ ajouter <somme>
  63.  
  64.        Ajoute la somme spécifiée au compte
  65.        """
  66.        if not amount:
  67.            self.onecmd('help ajouter')
  68.            return
  69.        self.amount += float(amount)
  70.    def do_retirer(self, amount):
  71.        """ retirer <somme>
  72.  
  73.        Retire la somme spécifiée du compte
  74.        """
  75.        if not amount:
  76.            self.onecmd('help retirer')
  77.            return
  78.        self.amount -= float(amount)
  79.    def do_taux(self, rate):
  80.        """ taux [nouveau taux]
  81.  
  82.        Applique le taux spécifié (en pourcentage) aux opérations
  83.        futures, si aucun taux n'est spécifié, renvoie le taux actuel
  84.        """
  85.        if not rate:
  86.            print (self.rate)
  87.            return
  88.        
  89.        if rate[-1] == '%':
  90.            rate = rate[:-1]
  91.        self.rate = float(rate) / 100
  92.  
  93.    def do_aide(self, arg):
  94.        """ aide
  95.  
  96.        Affiche l'aide du programme
  97.        """
  98.        self.onecmd('help %s' % arg)
  99.    def do_quitter(self, arg):
  100.        """ quitter
  101.  
  102.        Sort du programme
  103.        """
  104.        return True
  105.    def do_EOF(self, line):
  106.        return True
  107.  
  108. if __name__ == '__main__':
  109.    Interests().cmdloop()


Message édité par masklinn le 07-07-2012 à 21:50:46

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°2148585
xJOEx
Posté le 08-07-2012 à 23:12:50  profilanswer
 

Merci de votre aide.  :)  
Maintenant, pouvez vous m'indiquer, s'il vous plaît, la commande qui permet de faire un choix (si elle existe) ?
Je cherche entre autre, une commande qui traduirait ceci :
 
"Vous avez le choix entre la version simplifiée, et la version détaillée :
Pour choisir la version simplifiée, entrez 1;
Pour choisir la version détaillé, entrez 2 ;
Sinon, entrez Q pour quitter le programme."
Donc une commande qui permettrait à l'utilisateur de choisir quelle partie du programme il veut lancer.
 
J'ai eu d'abord une idée de if, elif et else mais ça ne laisse aucun choix à l'utilisateur.  
Il faudrait vraiment que l'utilisateur puisse faire son choix tout de suite.
 
Merci
Cordialement.


---------------
L'informatique est ma passion et je m'y intéresse de très prêt.
n°2148589
masklinn
í dag viðrar vel til loftárása
Posté le 09-07-2012 à 07:00:35  profilanswer
 

Je crains n'avoir pas compris ce que tu veux.


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°2148595
xJOEx
Posté le 09-07-2012 à 09:45:46  profilanswer
 

Je voudrais que l'utilisateur du programme se retrouve devant une situation où il doit faire un choix, comme si le programme était divisé en 3 boucles : une boucle pour la "version simplifiée", un boucle pour "la version détaillée" et une boucle pour fermer le programme. Et que l'utilisateur puisse choisir quelle boucle dans le programme il veut lancer...
 
C'est plus clair ou pas ?


---------------
L'informatique est ma passion et je m'y intéresse de très prêt.
n°2148603
masklinn
í dag viðrar vel til loftárása
Posté le 09-07-2012 à 10:51:14  profilanswer
 

Oui. Dans ce cas, tu devras effectivement obligatoirement avoir une conditionnelle à un endroit ou à un autre.


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°2148608
xJOEx
Posté le 09-07-2012 à 10:55:51  profilanswer
 

Voici mon idée :
 

Code :
  1. print ("Vous avez le choix entre la version simplifiee et la version detaille." )
  2. print ("Pour choisir la version simplifiee, entrez '1'." )
  3. print ("Pour choisir la version detaillee, entrez '2'." )
  4. print ("Sinon, pour quitter le programme, entrez 'Q'." )
  5. print ()
  6. # Point A
  7. print ("Entrez 1 ou 2 ou Q pour continuer," )
  8. choix = raw_input("et pour valider, appuyez sur <ENTRER> : " )
  9. if choix == 1:
  10.     print ("Vous avez choisi la version simplifiee." )
  11.     raw_input("Appuyez sur <ENTRER> pour valider." )
  12. elif choix == 2:
  13.     print ("Vous avez choisi la version detaillee." )
  14.     raw_input("Appuyez sur <ENTRER> pour valider." )
  15. elif choix == Q:
  16.     print ("Vous avez choisi de quitter le programme." )
  17.     raw_input("Appuyez sur <ENTRER> pour valider." )
  18. else:
  19.     #Et ici je voudrais revenir au point A.


Qu'en dites vous ?  
Et dites moi svp comment puis je faire pour revenir au point A dans else.
Cordialement.


---------------
L'informatique est ma passion et je m'y intéresse de très prêt.
n°2148614
masklinn
í dag viðrar vel til loftárása
Posté le 09-07-2012 à 11:06:45  profilanswer
 

xJOEx a écrit :

Voici mon idée :
 

Code :
  1. print ("Vous avez le choix entre la version simplifiee et la version detaille." )
  2. print ("Pour choisir la version simplifiee, entrez '1'." )
  3. print ("Pour choisir la version detaillee, entrez '2'." )
  4. print ("Sinon, pour quitter le programme, entrez 'Q'." )
  5. print ()
  6. # Point A
  7. print ("Entrez 1 ou 2 ou Q pour continuer," )
  8. choix = raw_input("et pour valider, appuyez sur <ENTRER> : " )
  9. if choix == 1:
  10.     print ("Vous avez choisi la version simplifiee." )
  11.     raw_input("Appuyez sur <ENTRER> pour valider." )
  12. elif choix == 2:
  13.     print ("Vous avez choisi la version detaillee." )
  14.     raw_input("Appuyez sur <ENTRER> pour valider." )
  15. elif choix == Q:
  16.     print ("Vous avez choisi de quitter le programme." )
  17.     raw_input("Appuyez sur <ENTRER> pour valider." )
  18. else:
  19.     #Et ici je voudrais revenir au point A.


Qu'en dites vous ?  
Et dites moi svp comment puis je faire pour revenir au point A dans else.
Cordialement.


Faut une boucle autour (une runloop), et les conditions à l'intérieur manipulent la boucle toplevel [:spamafote]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°2148615
xJOEx
Posté le 09-07-2012 à 11:07:22  profilanswer
 

J'ai remplacé 'Q' par 3 et j'ai mis un int() devant raw_input ligne 8 pour que cela fonctionne. Mais je ne sais pas comment revenir de else au point A.
 
Cordialement.


---------------
L'informatique est ma passion et je m'y intéresse de très prêt.
n°2148616
xJOEx
Posté le 09-07-2012 à 11:08:18  profilanswer
 

Quelles sont les commandes pour une telle boucle ???
 
Cordialement


---------------
L'informatique est ma passion et je m'y intéresse de très prêt.
n°2148617
masklinn
í dag viðrar vel til loftárása
Posté le 09-07-2012 à 11:13:11  profilanswer
 

Il y a quoi à la ligne 18 de ton programme d'origine?


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°2148623
xJOEx
Posté le 09-07-2012 à 11:34:19  profilanswer
 

Rien, le script est juste un test pour un programme plus tard, il me faut les bases.
Cordialement


---------------
L'informatique est ma passion et je m'y intéresse de très prêt.
n°2148625
masklinn
í dag viðrar vel til loftárása
Posté le 09-07-2012 à 11:39:06  profilanswer
 


Si si. Retournes voir.


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°2148628
xJOEx
Posté le 09-07-2012 à 11:41:21  profilanswer
 

Voilà mon script :
 

Code :
  1. print ("Vous avez le choix entre la version simplifiee et la version detaille." )
  2. print ("Pour choisir la version simplifiee, entrez '1'." )
  3. print ("Pour choisir la version detaillee, entrez '2'." )
  4. print ("Sinon, pour quitter le programme, entrez 'Q'." )
  5. print ()
  6. # Point A
  7. print ("Entrez 1 ou 2 ou 3 pour continuer," )
  8. choix = int(raw_input("et pour valider, appuyez sur <ENTRER> : " ))
  9. if choix == 1:
  10.     print ("Vous avez choisi la version simplifiee." )
  11.     raw_input("Appuyez sur <ENTRER> pour valider." )
  12. elif choix == 2:
  13.     print ("Vous avez choisi la version detaillee." )
  14.     raw_input("Appuyez sur <ENTRER> pour valider." )
  15. elif choix == 3:
  16.     print ("Vous avez choisi de quitter le programme." )
  17.     raw_input("Appuyez sur <ENTRER> pour valider." )
  18. else:
  19.     #Et ici je voudrais revenir au point A.
  20.     print("je veux revenir aux choix" )


---------------
L'informatique est ma passion et je m'y intéresse de très prêt.
n°2148629
xJOEx
Posté le 09-07-2012 à 11:42:01  profilanswer
 

il y a juste le else à la ligne 18


---------------
L'informatique est ma passion et je m'y intéresse de très prêt.
n°2148632
masklinn
í dag viðrar vel til loftárása
Posté le 09-07-2012 à 11:46:42  profilanswer
 

Non, je parle du script que tu avais posté avant celui-là.


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°2148633
xJOEx
Posté le 09-07-2012 à 11:47:51  profilanswer
 

Je viens de penser : si je mettais un while au point A de sorte que :
tant que choix ne vaut pas 1 ou 2 ou 3
et au else je mets les if, elif, elif pour 1, 2, 3
 
Cela pourrait marcher ???


---------------
L'informatique est ma passion et je m'y intéresse de très prêt.
n°2148634
xJOEx
Posté le 09-07-2012 à 11:48:57  profilanswer
 

Je pense que oui ^^


---------------
L'informatique est ma passion et je m'y intéresse de très prêt.
n°2148636
masklinn
í dag viðrar vel til loftárása
Posté le 09-07-2012 à 11:54:01  profilanswer
 

xJOEx a écrit :

Je viens de penser : si je mettais un while au point A de sorte que :
tant que choix ne vaut pas 1 ou 2 ou 3
et au else je mets les if, elif, elif pour 1, 2, 3
 
Cela pourrait marcher ???


Oui, mais c'est pourri. Regardes les mot-clés continue et break


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°2148639
xJOEx
Posté le 09-07-2012 à 11:58:11  profilanswer
 

Cela ne fonctionne pas  :??:  :pfff:  
 

Code :
  1. print ("Vous avez le choix entre la version simplifiee et la version detaille." )
  2. print ("Pour choisir la version simplifiee, entrez '1'." )
  3. print ("Pour choisir la version detaillee, entrez '2'." )
  4. print ("Sinon, pour quitter le programme, entrez '3'." )
  5. print
  6. # Point A
  7. choix = int(0)
  8. while choix != 1 or 2 or 3:
  9.     print ("Entrez 1 ou 2 ou 3 pour continuer," )
  10.     choix = int(raw_input("et pour valider, appuyez sur <ENTRER> : " ))
  11.     #continue ou break ??? Aucun d'eux ne fonctionne
  12. else :
  13.     if choix == 1:
  14.         print ("Vous avez choisi la version simplifiee." )
  15.         raw_input("Appuyez sur <ENTRER> pour valider." )
  16.     elif choix == 2:
  17.         print ("Vous avez choisi la version detaillee." )
  18.         raw_input("Appuyez sur <ENTRER> pour valider." )
  19.     elif choix == 3:
  20.         print ("Vous avez choisi de quitter le programme." )
  21.         raw_input("Appuyez sur <ENTRER> pour valider." )


Aidez moi svp  :(


---------------
L'informatique est ma passion et je m'y intéresse de très prêt.
n°2148644
xJOEx
Posté le 09-07-2012 à 12:11:09  profilanswer
 

J'ai essayé ceci :

Code :
  1. choix = 0
  2. print ("Vous avez le choix entre la version simplifiee et la version detaille." )
  3. print ("Pour choisir la version simplifiee, entrez '1'." )
  4. print ("Pour choisir la version detaillee, entrez '2'." )
  5. print ("Sinon, pour quitter le programme, entrez '3'." )
  6. print
  7. if choix != 1 or 2 or 3:
  8.     print ("Entrez 1 ou 2 ou 3 pour continuer," )
  9.     choix = int(raw_input("et pour valider, appuyez sur <ENTRER> : " ))
  10.     continue
  11. elif choix == 1:
  12.         print ("Vous avez choisi la version simplifiee." )
  13.         raw_input("Appuyez sur <ENTRER> pour valider." )
  14. elif choix == 2:
  15.         print ("Vous avez choisi la version detaillee." )
  16.         raw_input("Appuyez sur <ENTRER> pour valider." )
  17. elif choix == 3:
  18.         print ("Vous avez choisi de quitter le programme." )
  19.         raw_input("Appuyez sur <ENTRER> pour valider." )


 
Mais ça ne fonctionne pas encore.


---------------
L'informatique est ma passion et je m'y intéresse de très prêt.
n°2148647
xJOEx
Posté le 09-07-2012 à 12:20:14  profilanswer
 

Franchement, je ne vois pas comment je pourrais faire.
J'ai regardé les mots clefs break et continue mais ça ne donne rien, je m'y prends mal.  
Ce que je cherche :
 

Code :
  1. choix = 0
  2. print ("Vous avez le choix entre la version simplifiee et la version detaille." )
  3. print ("Pour choisir la version simplifiee, entrez '1'." )
  4. print ("Pour choisir la version detaillee, entrez '2'." )
  5. print ("Sinon, pour quitter le programme, entrez '3'." )
  6. print
  7. #si le choix != 1 or 2 or 3:
  8.     print ("Entrez 1 ou 2 ou 3 pour continuer," )
  9.     choix = int(raw_input("et pour valider, appuyez sur <ENTRER> : " ))
  10.     #revenir au choix
  11. else :
  12.     if choix == 1:
  13.         print ("Vous avez choisi la version simplifiee." )
  14.         raw_input("Appuyez sur <ENTRER> pour valider." )
  15.     elif choix == 2:
  16.         print ("Vous avez choisi la version detaillee." )
  17.         raw_input("Appuyez sur <ENTRER> pour valider." )
  18.     elif choix == 3:
  19.         print ("Vous avez choisi de quitter le programme." )
  20.         raw_input("Appuyez sur <ENTRER> pour valider." )


 
Et mon problème avec continue est que même si je rentre 1 ou 2 ou 3, la boucle se répète quand même.
 :(


---------------
L'informatique est ma passion et je m'y intéresse de très prêt.
n°2148655
masklinn
í dag viðrar vel til loftárása
Posté le 09-07-2012 à 12:53:09  profilanswer
 

Code :
  1. def simple_view():
  2.    print ("This is the simple view\n\n" )
  3. def complex_view():
  4.    print ("This is the complex view\n\n" )
  5.    
  6. if __name__ == '__main__':
  7.    while True:
  8.        print ("""Choose between complex and simple view
  9.  
  10.        For the simple view, type 1,
  11.        For the complex view, type 2,
  12.        To quit, type 3""" )
  13.        choice = raw_input('choice > ')
  14.  
  15.        if choice == '1':
  16.            simple_view();
  17.        elif choice == '2':
  18.            complex_view()
  19.        else:
  20.            break


[:spamafote]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°2148664
xJOEx
Posté le 09-07-2012 à 13:14:18  profilanswer
 

oh =o merci bien =)
mais expliquez moi svp : en quoi consiste la commande def ?


---------------
L'informatique est ma passion et je m'y intéresse de très prêt.
n°2148687
masklinn
í dag viðrar vel til loftárása
Posté le 09-07-2012 à 14:53:31  profilanswer
 

Créer une fonction. Je suggère parcourir un tutoriel de programmation Python.


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°2148708
SekYo
Posté le 09-07-2012 à 15:41:06  profilanswer
 

Le but derrière les fonctions est que ça te permet de découper un gros programme énorme (et illisible) en pleins de petits bouts différents, ce qui te permet (entre autre) :
1/ De mieux découper ton programme, pour qu'il soit organisé de façon plus logique
2/ De réutiliser tes fonctions dans différents endroits sans devoir copier/coller le code.
 
J'aurai bien aimé avoir un prof faisant faire du Python ;(

n°2148750
xJOEx
Posté le 09-07-2012 à 19:20:53  profilanswer
 

Ok merci de votre aide et de vos explications.
et Masklinn oui je parcours des tutoriels =) seulement, la façon dont tout cela est expliqué est quelques fois dur à comprendre...
 
Cordialement.

n°2148754
xJOEx
Posté le 09-07-2012 à 19:50:37  profilanswer
 

Donc voilà mon script :
 

Code :
  1. def v_simplifiee():
  2.     print ("Vous avez choisi la version simplifiee." )
  3.     raw_input("Appuyez sur <ENTRER> pour valider." )
  4.     print ("\n\n" )
  5. def v_detaillee():
  6.     print ("Vous avez choisi la version detaillee." )
  7.     raw_input("Appuyez sur <ENTRER> pour valider." )
  8.     print ("\n\n" )
  9.    
  10. if __name__ == '__main__':
  11.     while True:
  12.         print ("Vous avez le choix entre la version simplifiee et la version detaille." )
  13.         print ("Pour choisir la version simplifiee, entrez '1'." )
  14.         print ("Pour choisir la version detaillee, entrez '2'." )
  15.         print ("Sinon, pour quitter le programme, entrez '3'." )
  16.         print
  17.         print ("Entrez 1 ou 2 ou 3 pour continuer," )
  18.         choix = raw_input("Pour valider, appuyez sur <ENTRER> : " )
  19.         if choix == '1':
  20.             print ("\n\n" )
  21.             v_simplifiee();
  22.         elif choix == '2':
  23.             print ("\n\n" )
  24.             v_detaillee();
  25.         elif choix == '3':
  26.             print ("\n\n" )
  27.             print ("Vous avez choisi de quitter le programme." )
  28.             raw_input("Appuyez sur <ENTRER> pour valider." )
  29.             break
  30.         else:
  31.             print ("\n\n" )
  32.             print ("ERREUR" )
  33.             print ("Saisie invalide" )
  34.             print ("Fin du programme" )
  35.             raw_input()
  36.             break


 
 :love:


---------------
L'informatique est ma passion et je m'y intéresse de très prêt.
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Python

  bonjour, problème synthax python sous idle

 

Sujets relatifs
Problème gestion des dates VBAProbleme de mail en HTML
[resolu]Problème : récuperation de données d'un utilisateur facebookprobleme regex java
Problème d'imbrication de références et de tableaux de référencesProblème de tri d'enregistrements
Problème de méta données[Resolu] problème CSS : faire un 100% et soustraire des PX
Problème d'accents formulaireProblème d'espacement avec IE7
Plus de sujets relatifs à : bonjour, problème synthax python sous idle


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR