#1 Le 26/01/2019, à 11:15
- piter42
résoudre sript sur resultat sqrt int ou float
bonjour
je doit écrire un scrip qui affiche si la racine carré est possible ou non suivant le nbr entré,voila mon sript:
from math import*
print("veuillez entrer un nbr;")
a=int(input())
b=sqrt(a)
if type(b)==float:
print("impossible")
elif type(b)==int:
print(b)
et en résultat j ai tjs le nbr (a) au lieu de (b) et "impossible" ?
merci pour vos réponses
Hors ligne
#2 Le 26/01/2019, à 12:06
- soshy
Re : résoudre sript sur resultat sqrt int ou float
salut
type(sqrt(4))
<class 'float'>
A priori sqrt retour un float, dont ça sera toujours impossible
Hors ligne
#3 Le 26/01/2019, à 12:08
- pingouinux
Re : résoudre sript sur resultat sqrt int ou float
Bonjour,
.............................;
b=int(sqrt(a))
if b*b!=a:
.............................;
Hors ligne
#4 Le 26/01/2019, à 12:24
- cqfd93
Re : résoudre sript sur resultat sqrt int ou float
Modération
Bonjour,
…
et en résultat j ai tjs le nbr (a) au lieu de (b) et "impossible" ?
La langue du forum est le français, pas le SMS ! Et dans ton script, pourquoi ne pas demander « veuillez entrer un nombre » ?
− cqfd93 −
Hors ligne
#5 Le 26/01/2019, à 16:04
- kholo
Re : résoudre sript sur resultat sqrt int ou float
et nous demander de faire tes devoirs ne va pas t'aider des masses...
la recherche est un point important en programmation !
... et si tu commences par convertir ton nombre en entier
a=int(input())
a n'est plus la valeur entrée mais un autre nombre...
quant à la racine carré d'un nombre, elle est possible mais doit donner un entier
j'en ai pas trop dit là ?
Hors ligne
#6 Le 26/01/2019, à 16:31
- piter42
Re : résoudre sript sur resultat sqrt int ou float
et nous demander de faire tes devoirs ne va pas t'aider des masses...
la recherche est un point important en programmation !... et si tu commences par convertir ton nombre en entier
a=int(input())
a n'est plus la valeur entrée mais un autre nombre...
quant à la racine carré d'un nombre, elle est possible mais doit donner un entier
j'en ai pas trop dit là ?
j avais mis float au début,mais comme ça me mettait "impossible" j ai assayé int(),regardé sur le net et j ai vu qu les racine carré donne toujours un réel et non un entier, c'est pour celà que je me tourne vers vous,pas pour que vous fassiez mes devoirs,j ai 55 ans ça fait longtemps que je n ai plus de devoirs
Hors ligne
#7 Le 26/01/2019, à 16:42
- piter42
Re : résoudre sript sur resultat sqrt int ou float
Bonjour,
.............................; b=int(sqrt(a)) if b*b!=a: .............................;
voila le script
from math import*
print("veuillez entrer un nbr;")
a=float(input())
b=sqrt(a)
if b*b!=a:
print("impossible")
elif b*b==a:
print(b)
et ça marche ,merci pingouinux
Hors ligne
#8 Le 26/01/2019, à 16:44
- piter42
Re : résoudre sript sur resultat sqrt int ou float
Modération
Bonjour,
piter42 a écrit :…
et en résultat j ai tjs le nbr (a) au lieu de (b) et "impossible" ?La langue du forum est le français, pas le SMS ! Et dans ton script, pourquoi ne pas demander « veuillez entrer un nombre » ?
parce que ce sont des abréviations pour simplifier et pas du language sms,je n'ai pas écrit lol ou mdr
Dernière modification par piter42 (Le 26/01/2019, à 16:45)
Hors ligne
#9 Le 26/01/2019, à 17:00
- cqfd93
Re : résoudre sript sur resultat sqrt int ou float
parce que ce sont des abréviations pour simplifier et pas du language sms,je n'ai pas écrit lol ou mdr
Le résultat est le même et que je sache, le langage SMS ne se résume pas à lol et mdr.
− cqfd93 −
Hors ligne
#10 Le 26/01/2019, à 17:09
- pingouinux
Re : résoudre sript sur resultat sqrt int ou float
Il vaut mieux faire ceci :
......................................
b=int(sqrt(a))
if b*b!=a:
print("impossible")
else:
print(b)
Avec un nombre qui n'est pas un carré, comme 5, ton script répond impossible à cause des erreurs d'arrondi :
a=5; b=2.23606797749979; b*b=5.000000000000001
Mais il y a des cas où ça ne marche pas :
a=5.000000000000001; b=2.23606797749979; b*b=5.000000000000001
Hors ligne
#11 Le 26/01/2019, à 17:22
- piter42
Re : résoudre sript sur resultat sqrt int ou float
piter42 a écrit :parce que ce sont des abréviations pour simplifier et pas du language sms,je n'ai pas écrit lol ou mdr
Le résultat est le même et que je sache, le langage SMS ne se résume pas à lol et mdr.
ce que je recherche c est de l aide,donc si ma façon d écrire ne vous plait pas tant pis ,le seul qui ait fait avancez les choses c est pingouinix et je l en remercie
cdlmt
Hors ligne