1. ホーム
  2. python

[解決済み] なぜPythonは平方根に対して「間違った」答えを出すのですか?Python 2の整数除算とは何ですか?[重複しています]。

2022-03-03 04:56:27

質問

x = 16

sqrt = x**(.5)  #returns 4
sqrt = x**(1/2) #returns 1

I know I can import math を使用し sqrt , しかし、私は上記の答えを探しています。Python 2の整数除算とは何ですか?この動作はPython 3で修正されています。

どのように解決するのですか?

Python 2の場合。 sqrt=x**(1/2) は整数の除算を行います。 1/2 == 0 .

だから x (1/2) はxに等しい (0) であり、1である。

間違っているのではなく、違う問題に対する正解なのです。

math モジュールのインポートなしで平方根を計算したい場合は、次のようにします。 x**(1.0/2) または x**(1/2.) . 整数のうち1つは浮動小数点数である必要があります。

注:Python 3では、このようなことはありません。 1/20.51//2 は整数の割り算になる。