web-dev-qa-db-fra.com

Quelle est la différence entre "2 * 2" et "2 ** 2" en Python?

Quelle est la différence entre les codes suivants?

code1:

var=2**2*3

code2:

var2=2*2*3

Je ne vois pas de différence. Cela soulève la question suivante.

Pourquoi le code1 est-il utilisé si nous pouvons utiliser le code2?

Essayer:

2**3*2

et

2*3*2

pour voir la différence.

** est l'opérateur de "puissance de". Dans votre opération particulière, 2 à la puissance de 2 donne la même chose que 2 fois 2.

119
OscarRyz

Étoiles doubles (**) sont l'exponentiation. Donc "2 fois 2" et "2 à la puissance 2" sont les mêmes. Modifiez les chiffres et vous verrez une différence.

32
eduffy
  2**2 means 2 squared (2^2)
  2*2 mean 2 times 2 (2x2)

Dans ce cas, ils ont la même valeur, mais ...

  3**3*4 != 3*3*4
14
Jiaaro

Pour répondre spécifiquement à votre question Pourquoi le code1 est-il utilisé si nous pouvons utiliser le code2? Je pourrais suggérer que le programmeur pensait dans un sens mathématiquement plus large. Plus précisément, l'équation plus large est peut-être une équation de puissance, et le fait que les deux premiers nombres soient "2" est plus une coïncidence que la réalité mathématique. Je voudrais m'assurer que le contexte plus large du code prend en charge qu'il soit

var = x * x * y
4
JohnMetta

Pour les apprenants visuels .........................

enter image description here

4
Habeeb Perwad

2 ** 2 = 2 puissance de 2

2 * 2 = 2 fois 2

2
James Brooks

Le ** opérateur dans Python est vraiment "power;" c'est-à-dire 2**3 = 8.

2
ravuya

Un double astérisque signifie la puissance de. Un astérisque unique signifie multiplié par. 22 est le même que 2x2, c'est pourquoi les deux réponses sont sorties comme 4.

1
Andrew Marsh

Celui du haut est un opérateur de "puissance", donc dans ce cas c'est la même chose que 2 * 2 égal à 2 à la puissance de 2. Si vous mettez un 3 en position médiane, vous verrez une différence.

1
Greg Reynolds

Le pouvoir a plus de priorité que de multiplier, donc:

2**2*3 = (2^2)*3
2*2*3 = 2*2*3
1
vtlinh