bonjour, problème synthax python sous idle

bonjour, problème synthax python sous idle - Python - Programmation

Marsh Posté le 05-07-2012 à 11:48:27    

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

Reply

Marsh Posté le 05-07-2012 à 11:48:27   

Reply

Marsh Posté le 05-07-2012 à 11:54:12    

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

Reply

Marsh Posté le 05-07-2012 à 12:01:38    

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')

Reply

Marsh Posté le 05-07-2012 à 12:21:13    

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 ...

Reply

Marsh Posté le 05-07-2012 à 12:43:36    

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.

Reply

Marsh Posté le 05-07-2012 à 16:31:39    

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 ?

Reply

Marsh Posté le 05-07-2012 à 18:17:01    

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
Reply

Marsh Posté le 06-07-2012 à 15:14:31    

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

Reply

Marsh Posté le 06-07-2012 à 15:43:42    

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.

Reply

Marsh Posté le 06-07-2012 à 15:49:30    

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.
Reply

Marsh Posté le 06-07-2012 à 15:49:30   

Reply

Marsh Posté le 07-07-2012 à 17:07:58    

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.
Reply

Marsh Posté le 07-07-2012 à 17:20:59    

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
Reply

Marsh Posté le 07-07-2012 à 21:18:31    

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.
Reply

Marsh Posté le 07-07-2012 à 21:49:34    

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
Reply

Marsh Posté le 08-07-2012 à 23:12:50    

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.
Reply

Marsh Posté le 09-07-2012 à 07:00:35    

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
Reply

Marsh Posté le 09-07-2012 à 09:45:46    

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.
Reply

Marsh Posté le 09-07-2012 à 10:51:14    

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
Reply

Marsh Posté le 09-07-2012 à 10:55:51    

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.
Reply

Marsh Posté le 09-07-2012 à 11:06:45    

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
Reply

Marsh Posté le 09-07-2012 à 11:07:22    

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.
Reply

Marsh Posté le 09-07-2012 à 11:08:18    

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.
Reply

Marsh Posté le 09-07-2012 à 11:13:11    

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
Reply

Marsh Posté le 09-07-2012 à 11:34:19    

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.
Reply

Marsh Posté le 09-07-2012 à 11:39:06    


Si si. Retournes voir.


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 09-07-2012 à 11:41:21    

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.
Reply

Marsh Posté le 09-07-2012 à 11:42:01    

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.
Reply

Marsh Posté le 09-07-2012 à 11:46:42    

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
Reply

Marsh Posté le 09-07-2012 à 11:47:51    

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.
Reply

Marsh Posté le 09-07-2012 à 11:48:57    

Je pense que oui ^^


---------------
L'informatique est ma passion et je m'y intéresse de très prêt.
Reply

Marsh Posté le 09-07-2012 à 11:54:01    

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
Reply

Marsh Posté le 09-07-2012 à 11:58:11    

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.
Reply

Marsh Posté le 09-07-2012 à 12:11:09    

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.
Reply

Marsh Posté le 09-07-2012 à 12:20:14    

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.
Reply

Marsh Posté le 09-07-2012 à 12:53:09    

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
Reply

Marsh Posté le 09-07-2012 à 13:14:18    

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.
Reply

Marsh Posté le 09-07-2012 à 14:53:31    

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
Reply

Marsh Posté le 09-07-2012 à 15:41:06    

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 ;(

Reply

Marsh Posté le 09-07-2012 à 19:20:53    

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.

Reply

Marsh Posté le 09-07-2012 à 19:50:37    

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.
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed