J'ai ce code python:carré parfait
def sqrt(x):
ans = 0
if x >= 0:
while ans*ans < x:
ans = ans + 1
if ans*ans != x:
print x, 'is not a perfect square.'
return None
else:
print x, ' is a perfect square.'
return ans
else:
print x, ' is not a positive number.'
return None
y = 16
sqrt(y)
la sortie est:
16 is not a perfect square.
Alors que cela fonctionne parfaitement:
x = 16
ans = 0
if x >= 0:
while ans*ans < x:
ans = ans + 1
#print 'ans =', ans
if ans*ans != x:
print x, 'is not a perfect square'
else: print ans, 'is a perfect square'
else: print x, 'is not a positive number'
Qu'est-ce que je fais mal?
Voici une question connexe sur la façon de déterminer si un nombre est un carré parfait: http: // stackoverflow.com/questions/295579/le plus rapide-pour-déterminer-si-un-nombre-entier-racine-est-un-entier –