Comprendere la torre numerica.
Regola 1: dati due operandi dello stesso tipo, il risultato avrà quel tipo.
ad es. int/int = int
temp**(1/8)
non dà all'8 radice di temperatura perché:
>>>1/8
0
Regola 2: Se gli operandi sono mescolati, uno di essi sarà costretto la torre numerico: integer -> rational -> float -> complex.
ad es. float/int = galleggiare
>>>1./8 # 1. is a float
0.125
Nota: Ci possono essere casi in cui queste regole non si applicano alla vera divisione divisione/e pavimento // ma io non li comprendere appieno. Vedi lo link.
"Hanno fatto studi che conosci, funzionano il 60% delle volte ... ogni volta." - Brian Fantana
trappola: Nei PO discussione l'espressione temp**(1/8)
è fatta di operandi misti (temp è un galleggiante) perché non è (1/8)
un galleggiante?
Gli operandi vengono valutati secondo BODMAS/BIDMAS così (1/8)
viene valutata per prima, l'espressione risultante diventa temp**0
ea questo punto 0
è costretto ad un galleggiante.
Qualsiasi positivo int
o float
alla potenza 0.0
è 1.0
.
forse puoi provare con '1./8.'? !! – Dalek