de-vraag
  • Spørgsmål
  • Tags
  • Brugere
Meddelelser
Belønninger
Registrering
Når du har registreret dig, vil du få besked om svar og kommentarer til dine spørgsmål.
Log ind
Hvis du allerede har en konto, kan du logge ind for at se nye meddelelser.
Der vil være belønninger for tilføjede spørgsmål, svar og kommentarer.
Mere
Kilde
Rediger
 Merlin
Merlin
Spørgsmål

Hvordan beregner jeg kvadratrod i Python?

Hvorfor giver Python det "forkerte" svar?

x = 16

sqrt = x**(.5)
returns 4

sqrt = x**(1/2)
returns 1

Ja, jeg kender import math og bruger sqrt. Men jeg søger et svar på ovenstående.

122 2012-03-07T02:48:51+00:00 3
 Merlin
Merlin
Redigeret spørgsmål 2019ør juli 2019 в 10:46
Programmering
math
python
sqrt
Dette spørgsmål har 1 svar på engelsk, for at læse dem log ind på din konto.
Løsning / svar
 smessing
smessing
2012ør marts 2012 в 2:50
2012-03-07T02:50:51+00:00
Mere
Kilde
Rediger
#15614379

sqrt=x**(1/2) udfører heltalsdivision. 1/2 == 0.

Så du beregner x(1/2) i det første tilfælde, x(0) i det andet tilfælde.

Så det er ikke forkert, det er det rigtige svar på et andet spørgsmål.

 Merlin
Merlin
Redigeret svar 2018ør august 2018 в 2:59
225
0
Óscar López
Óscar López
2012ør marts 2012 в 2:51
2012-03-07T02:51:57+00:00
Mere
Kilde
Rediger
#15614381

Du er nødt til at skrive: Ellers udføres der en heltalsdivision, og udtrykket 1/2 giver 0.

Denne opførsel er "normal" i Python 2.x, mens 1/2 i Python 3.x evalueres til 0,5. Hvis du vil have din Python 2.x-kode til at opføre sig som 3.x med hensyn til division, så skriv from __future__ import division - så vil 1/2 evaluere til 0.5 og for bagudkompatibilitet vil 1//2 evaluere til 0.

Og for en god ordens skyld, så er den foretrukne måde at beregne en kvadratrod på denne måde:

import math
math.sqrt(x)
 ChrisF
ChrisF
Redigeret svar 2019ør juli 2019 в 9:21
102
0
Niklas B.
Niklas B.
2012ør marts 2012 в 2:51
2012-03-07T02:51:06+00:00
Mere
Kilde
Rediger
#15614380

/ udfører en heltalsdivision i Python 2:

>>> 1/2
0

Hvis et af tallene er et float-tal, virker det som forventet:

>>> 1.0/2
0.5
>>> 16**(1.0/2)
4.0
10
0
Tilføj spørgsmål
Kategorier
Alle
Teknologi
Kultur / fritid
Liv / kunst
Videnskab
Professionel
Virksomhed
Brugere
Alle
Ny
Populære
1
mohidil qodirova
Registreret 1 dag siden
2
Jasur Fozilov
Registreret 2 dage siden
3
Zuxriddin Muydinov
Registreret 2 dage siden
4
Денис Анненский
Registreret 5 dage siden
5
365
Registreret 1 uge siden
DA
DE
EL
ES
FR
ID
IT
JA
KO
NL
PT
RU
TR
ZH
© de-vraag 2022
Kilde
stackoverflow.com
under licens cc by-sa 3.0 med kildeangivelse