2009-06-25 14 views

Odpowiedz

114

Spróbuj:

2**3*2 

i

2*3*2 

aby zobaczyć różnicę.

** jest operatorem "mocy". W danej operacji, 2 do potęgi 2 daje taki sam jak 2 razy 2.

+0

Dziękuję za odpowiedź! –

+8

http://docs.python.org/reference/expressions.html#the-power-operator oraz http://docs.python.org/reference/expressions.html#binary-arithmetic-operations- operations są ważne @Masi, weź pod uwagę czytając je. –

+0

@ S.Lott: Dziękuję za linki! –

30

Gwiazdy podwójne (**) są potęgowaniem. Więc "2 razy 2" i "2 do potęgi 2" są takie same. Zmień liczby, a zobaczysz różnicę.

+6

W rzeczywistości podwójne gwiazdy są dość powszechnie używane w dowolnym języku, w którym karat (^) jest zarezerwowany dla bitowych operacji XOR. Nie sądzę, żebym widział podwójne gwiazdy o jakimkolwiek innym znaczeniu niż potęgowanie. –

+2

Zostały użyte w FORTRAN dawno, dawno temu. –

+3

Podwójna gwiazda została wprowadzona jako moc w Fortranie, która nie ma bitowych symboli operatora. –

2

2 ** 2 = 2 zasilania od 2

2 * 2 = 2 razy 2

2

Operator Pythona ** jest bardzo "moc"; to jest 2**3 = 8.

12
2**2 means 2 squared (2^2) 
    2*2 mean 2 times 2 (2x2) 

w tym przypadku stało się one mają taką samą wartość, ale ...

3**3*4 != 3*3*4 
1

górze jeden jest operatorem "mocy", więc w tym przypadku jest taki sam jak 2 * 2 równy 2 do potęgi 2. Jeśli postawisz 3 w środkowej pozycji, zobaczysz różnicę.

4

Aby konkretnie odpowiedzieć na pytanie Dlaczego użyto kodu1, jeśli możemy użyć kodu2? Mogę zasugerować, że programista myślał w matematycznie szerszym znaczeniu. W szczególności, być może szersze równanie jest równaniem mocy, a fakt, że obie pierwsze liczby są "2", jest bardziej zbiegiem okoliczności niż rzeczywistość matematyczna. Chciałbym się upewnić, że szerszy kontekst kodu wspiera go we wszystkich przypadkach, a nie tylko w tym konkretnym przypadku. Może to spowodować duże problemy, jeśli x ma wartość inną niż 2.

1

Podwójna gwiazdka oznacza moc. Pojedyncza gwiazdka oznacza pomnożenie przez. 2 jest taka sama jak 2x2, dlatego obie odpowiedzi wyszedł jako 4.

1

Power ma pierwszeństwo więcej niż mnożyć, więc:

2**2*3 = (2^2)*3 
2*2*3 = 2*2*3 
2

Dla uczących wizualnymi ........ .................

enter image description here

Powiązane problemy