bonjour, problème synthax python sous idle - Python - Programmation
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
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')
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 ...
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.
Marsh Posté le 05-07-2012 à 16:31:39
Bonjour, je ne connais pas python, mais si tu fais :
Code :
|
plutôt que :
Code :
|
Est-ce que ça passe ?
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 ? |
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 :
|
exactement?
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
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.
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.
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 :
|
Dites moi ce que vous en pensez s'il vous plaît =).
Cordialement
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.
|
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.
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 :
|
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.
Marsh Posté le 09-07-2012 à 07:00:35
Je crains n'avoir pas compris ce que tu veux.
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 ?
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.
Marsh Posté le 09-07-2012 à 10:55:51
Voici mon idée :
Code :
|
Qu'en dites vous ?
Et dites moi svp comment puis je faire pour revenir au point A dans else.
Cordialement.
Marsh Posté le 09-07-2012 à 11:06:45
xJOEx a écrit : Voici mon idée :
|
Faut une boucle autour (une runloop), et les conditions à l'intérieur manipulent la boucle toplevel
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.
Marsh Posté le 09-07-2012 à 11:08:18
Quelles sont les commandes pour une telle boucle ???
Cordialement
Marsh Posté le 09-07-2012 à 11:13:11
Il y a quoi à la ligne 18 de ton programme d'origine?
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
Marsh Posté le 09-07-2012 à 11:39:06
xJOEx a écrit : Rien |
Si si. Retournes voir.
Marsh Posté le 09-07-2012 à 11:41:21
Voilà mon script :
Code :
|
Marsh Posté le 09-07-2012 à 11:42:01
il y a juste le else à la ligne 18
Marsh Posté le 09-07-2012 à 11:46:42
Non, je parle du script que tu avais posté avant celui-là.
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 ???
Marsh Posté le 09-07-2012 à 11:48:57
Je pense que oui ^^
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 : |
Oui, mais c'est pourri. Regardes les mot-clés continue et break
Marsh Posté le 09-07-2012 à 11:58:11
Cela ne fonctionne pas
Code :
|
Aidez moi svp
Marsh Posté le 09-07-2012 à 12:11:09
J'ai essayé ceci :
Code :
|
Mais ça ne fonctionne pas encore.
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 :
|
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.
Marsh Posté le 09-07-2012 à 12:53:09
Code :
|
Marsh Posté le 09-07-2012 à 13:14:18
oh =o merci bien =)
mais expliquez moi svp : en quoi consiste la commande def ?
Marsh Posté le 09-07-2012 à 14:53:31
Créer une fonction. Je suggère parcourir un tutoriel de programmation Python.
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 ;(
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.
Marsh Posté le 09-07-2012 à 19:50:37
Donc voilà mon script :
Code :
|
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