Python : demander à l'utilisateur [Résolu/Fermé]

Signaler
Messages postés
258
Date d'inscription
jeudi 27 mars 2008
Statut
Membre
Dernière intervention
25 janvier 2019
-
 tt_thoma -
Salut,
Je me vois forcée de faire un programme en python puisque ma calculette vient de rendre l'âme...
Je cherche à faire exactement 2 programmes : un qui calcule le discriminant et un qui résout une équation du type : ax^n + bx^n + cx +d.
Pour le programme en lui même, pas de problème (Le deuxième se fera par essai/erreur sur les nombres de -5 à +5, les solutions des équations ne dépassant généralement pas ces chiffres.
Par contre, j'ai un souci pour la partie du programme qui demande à l'utilisateur de rentrer ses chiffres. Ça se formule comment en python ? Je voudrais que le programme demande à l'utilisateur l'exposant de x et son indice (carré, cube...) ainsi que d.
Enfin, pour le calcul, l'exposant s'écrit comment en python ? Python respecte-t'il les priorités (d'abord l'exposant ensuite la multiplication, enfin les additions).

Merci de votre aide.
(C'est pas urgent du tout)

2 réponses

pour demander d'entrer une donnée on fait :
x=input()


pour écrire un nombre en puissance on fait :

x**5 pour (x puissance 5) :

remarque :pour la première question il vaut mieux faire :

print "Entrer la valeur de X"
x=input()
52
Merci

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez Comment Ça Marche

CCM 71357 internautes nous ont dit merci ce mois-ci

georges97
Messages postés
4646
Date d'inscription
lundi 31 janvier 2011
Statut
Membre
Dernière intervention
25 mars 2020
1 025
Bonsoir fiddy,

A mont tour de demander un complément d'explication (grand débutant):

1) que veut dire évaluer dans ce contexte. J'ai testé que dans le cas d'une chaîne de caractères input et raw_input n'opèrent pas le même traitement puisqu'avec le seconde instruction on peut entrer la chaîne sans guillemets (python 2.7).Cela concerne t'il le tyoage des variables numériques ?

2) Exécuter avec les droits du programme veut dire en paramétrant les propriétés pour rendre la programme exécutable n'est ce pas?

Sachant que j'ai utilisé input pour entrer une variable numérique, cette capacité d'évaluation ne peut elle être utilisée pour discriminer entre valeur numérique et chaîne avec un if consécutif à la saisie et qui filtrerait les entrés "chaînes" non-désirées quand on prévoit un nombre ?

Peux tu préciser en quoi consiste le danger et éventuellement comment le détecter dans IDLE en mode debugging ?

Merci d'avance.
fiddy
Messages postés
11137
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1 657 > georges97
Messages postés
4646
Date d'inscription
lundi 31 janvier 2011
Statut
Membre
Dernière intervention
25 mars 2020

1/ Avec input(), tu dois rentrer les guillemets car justement, il y a évaluation de ce que tu saisies au clavier. Par exemple, si tu écris coucou, il retournera le contenu de la variable coucou et ça plantera. C'est exactement pareil, si tu tapes coucou directement dans IDLE. Ca plantera. Avec raw_input(), il considère que ce qui est tapé est une chaîne. Donc pas besoin de guillemets.

2/Ce que je veux dire, c'est que si tu écris un code exécutable en lieu et place d'une variable, elle sera exécutée comme si c'était une instruction du programme.

3/Oui, tu dois pouvoir jouant avec les try catch. En revanche, l'utilisateur peut taper une chaîne qui ne fasse pas planter le programme (donc try catch ne fera rien) et qui sera exécuté par le programme.
Imagine par exemple :
b=5
a=input()

Si l'utilisateur tape b, a vaudra 5. Bien sûr, des personnes compétentes pourront faire des choses bien plus dédommageables... Donc, pour faire un programme robuste, il vaut mieux utiliser raw_input() et gérer la conversion en int.
georges97
Messages postés
4646
Date d'inscription
lundi 31 janvier 2011
Statut
Membre
Dernière intervention
25 mars 2020
1 025 > fiddy
Messages postés
11137
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016

Merci pour ces réponses, que je vais m'appliquer à tester. J'ai l'impression d'être de plus en plus à l'aise avec ces concepts, même si j'en suis encore aux boucles, conditions et autres exercices de base, mais on en passe tous par là. Et surtout ca me passionne.

Désolé d'avoir profité du déterrage, mais je penbse que ca servira à d'autres.

Cordialement,
Georges

merci beaucoup pour votre aide j'en avais besoin
Merci, comment ça marche est génial !
Messages postés
258
Date d'inscription
jeudi 27 mars 2008
Statut
Membre
Dernière intervention
25 janvier 2019
22
Salut,
Merci pour la réponse, que je n'avais pas vue.
Du coup, j'ai pas eu besoin du programme, j'ai découvert entre-temps le génialissime WxMaxima qui fait tout ça très bien.
Mais je réutiliserai raw-input() un jour.