1
votes

Comment mettre au carré un nombre négatif en python

Je ne sais pas comment mettre au carré un nombre négatif en Python. Je comprends que vous pouvez faire x ** 2 , mais si vous utilisez -1 ** 2 , il sort comme -1, mais -1 au carré vaut 1.


4 commentaires

Que tapez-vous exactement? Je soupçonne un problème d'ordre des opérations.


i = -2 ; i * = i ; i >> 4


Une recherche dans le navigateur pour "Priorité des opérateurs Python" résoudra ce problème et les questions connexes.


Par exemple 2 * 5 ** 2 = 50 et non 100 . -5 ** 2 = 0-5 ** 2 = - (5 ** 2)


4 Réponses :


1
votes

Je peux le faire fonctionner comme prévu en Python, en fonction de la manière dont il est entré:

>>> -5 ** 2
-25
>>> (-5)**2
25
>>> pow(-5,2)
25
>>> import math
>>> math.pow(-5,2)
25.0

Je pense que la raison pour laquelle le premier ne fonctionne pas est à cause de la façon dont Python fait le Ordre des opérations.


0 commentaires

4
votes

En raison de l'ordre de priorité.

print(-1 * -1)

est identique à

print((-1) ** 2)

Si vous voulez mettre au carré -1 code> et ne prenez pas la valeur négative de 1 au carré, utilisez les parenthèses:

print(-(1 ** 2))

Ou multipliez-la par elle-même:

print(-1 ** 2)


0 commentaires

2
votes

Jetez un œil à cela dans l'interpréteur

>>> x = -5
>>> x**2
25
>>> -5**2
-25

Dans le premier cas, le -5 devient carré. Dans le second cas, le 5 devient carré puis annulé

J'espère que cela aide.


0 commentaires

0
votes

Vous devez utiliser des crochets autour de votre nombre négatif comme celui-ci

print((-5)**2)

en raison de la question de l'ordre des opérations


0 commentaires