Python neden "yanlış" cevabı veriyor?
x = 16
sqrt = x**(.5)
returns 4
sqrt = x**(1/2)
returns 1
Evet, import math
ı biliyorum ve sqrt
kullanıyorum. Ancak yukarıdakilere bir cevap arıyorum.
Yazmak zorundasın: sqrt = x**(1/2.0)
, aksi takdirde bir tamsayı bölme işlemi gerçekleştirilir ve 1/2
ifadesi 0
döndürür.
Bu davranış Python 2.x'de "normal" iken Python 3.x'de 1/2
0.5
olarak değerlendirilir. Python 2.x kodunuzun bölme işleminde 3.x gibi davranmasını istiyorsanız from __future__ import division
yazın - o zaman 1/2
0.5
olarak değerlendirilecek ve geriye dönük uyumluluk için 1//2
0
olarak değerlendirilecektir.
Ve kayıtlara geçsin diye söylüyorum, karekökü hesaplamak için tercih edilen yol şudur:
import math
math.sqrt(x)