Pythonでべき乗や平方根を計算する方法は、いくつか種類があります。
それぞれの方法について、使い方や違いについて解説していきます。
目次
Udemyの動画学習でもPythonを勉強しよう!
「平日の夜の勉強会には時間が間に合わなくて参加できない」「通勤時間のわずかな隙間時間を勉強時間にあてたい」「本ではよく分からないところを動画で理解を深めたい」そんなあなたはUdemyの動画学習がお勧めです!
UdemyのPythonおすすめ33講座レビューリストべき乗の計算方法
Pythonでべき乗(aのb乗)を計算する方法は主に3つあります。
1. 「**」演算子
a = 2 ** 3 # 2 の 3乗
print(a)
実行結果
8
2. pow()関数
a = pow(2, 3) # 2 の 3乗
print(a)
実行結果
8
3. math.pow()関数
import math
a = math.pow(2, 3) # 2 の 3乗
print(a)
実行結果
8.0
細かな仕様の違いはありますが、どの計算方法を使っても大丈夫です。
「**」演算子を使う方法が、一番シンプルでおすすめです。
仕様の違いについては、記事の最後で解説します。
小数点や負数のべき乗計算も可能です。
a = 1.5 ** 3 # 小数点
print(a)
b = -2 ** 3 # 負数
print(b)
c = 0 ** 3 # ゼロ
print(c)
実行結果
3.375
-8
0
平方根の計算方法
平方根は、mathライブラリのsqrt()関数で求めることができます。
a = math.sqrt(16) # 16 の平方根
print(a)
実行結果
4.0
平方根は、1/2乗(=0.5乗)で計算できることを使えば、通常のべき乗計算でも平方根を求めることができます。
a = 16 ** 0.5
print(a)
実行結果
4.0
応用的なべき乗の計算
Pythonのべき乗計算では、実数や複素数での演算もサポートされています。
a = 1.5 ** -1.5 # 実数
print(a)
b = 2.718 ** 3.14j # 複素数(jは虚数単位)
print(b)
実行結果
0.5443310539518174
(-0.9999981602123581+0.0019182210245099242j)
科学的な計算などをする場合には、覚えておくと良いでしょう。
コラム:べき乗計算の仕様の違いについて
べき乗の計算方法は、下記の3種類を紹介しました。
1. 「**」演算子
2. pow()関数
3. math.pow()関数
この3つの計算方法の主な仕様の違いとしては、下記があります。
・「**」とpow()は、整数同士のべき乗結果は、整数になる。
・math.pow()は、整数同士のべき乗結果は、浮動小数点型になる。
・math.pow()は、複素数演算をサポートしていない。
・「**」とpow()は、内部の計算方法は全く同じで、違いがない。
実際に確認してみると、このような結果になります。
import math
values = [0, 1.5, 3, -1.5, -3]
calc_1 = "a ** b"
calc_2 = "pow(a, b)"
calc_3 = "math.pow(a, b)"
for a in values:
for b in values:
print("=== {} の {} 乗 ===".format(a, b))
for now_calc in [calc_1, calc_2, calc_3]:
result = None
try:
result = eval(now_calc)
except:
result = "計算できません"
print(" {:<15} : {}".format(now_calc, result))
実行結果
=== 0 の 0 乗 ===
a ** b : 1
pow(a, b) : 1
math.pow(a, b) : 1.0
=== 0 の 1.5 乗 ===
a ** b : 0.0
pow(a, b) : 0.0
math.pow(a, b) : 0.0
=== 0 の 3 乗 ===
a ** b : 0
pow(a, b) : 0
math.pow(a, b) : 0.0
=== 0 の -1.5 乗 ===
a ** b : 計算できません
pow(a, b) : 計算できません
math.pow(a, b) : 計算できません
=== 0 の -3 乗 ===
a ** b : 計算できません
pow(a, b) : 計算できません
math.pow(a, b) : 計算できません
=== 1.5 の 0 乗 ===
a ** b : 1.0
pow(a, b) : 1.0
math.pow(a, b) : 1.0
=== 1.5 の 1.5 乗 ===
a ** b : 1.8371173070873836
pow(a, b) : 1.8371173070873836
math.pow(a, b) : 1.8371173070873836
=== 1.5 の 3 乗 ===
a ** b : 3.375
pow(a, b) : 3.375
math.pow(a, b) : 3.375
=== 1.5 の -1.5 乗 ===
a ** b : 0.5443310539518174
pow(a, b) : 0.5443310539518174
math.pow(a, b) : 0.5443310539518174
=== 1.5 の -3 乗 ===
a ** b : 0.2962962962962963
pow(a, b) : 0.2962962962962963
math.pow(a, b) : 0.2962962962962963
=== 3 の 0 乗 ===
a ** b : 1
pow(a, b) : 1
math.pow(a, b) : 1.0
=== 3 の 1.5 乗 ===
a ** b : 5.196152422706632
pow(a, b) : 5.196152422706632
math.pow(a, b) : 5.196152422706632
=== 3 の 3 乗 ===
a ** b : 27
pow(a, b) : 27
math.pow(a, b) : 27.0
=== 3 の -1.5 乗 ===
a ** b : 0.19245008972987526
pow(a, b) : 0.19245008972987526
math.pow(a, b) : 0.19245008972987526
=== 3 の -3 乗 ===
a ** b : 0.037037037037037035
pow(a, b) : 0.037037037037037035
math.pow(a, b) : 0.037037037037037035
=== -1.5 の 0 乗 ===
a ** b : 1.0
pow(a, b) : 1.0
math.pow(a, b) : 1.0
=== -1.5 の 1.5 乗 ===
a ** b : (-3.374729744674154e-16-1.8371173070873836j)
pow(a, b) : (-3.374729744674154e-16-1.8371173070873836j)
math.pow(a, b) : 計算できません
=== -1.5 の 3 乗 ===
a ** b : -3.375
pow(a, b) : -3.375
math.pow(a, b) : -3.375
=== -1.5 の -1.5 乗 ===
a ** b : (-9.999199243478975e-17+0.5443310539518174j)
pow(a, b) : (-9.999199243478975e-17+0.5443310539518174j)
math.pow(a, b) : 計算できません
=== -1.5 の -3 乗 ===
a ** b : -0.2962962962962963
pow(a, b) : -0.2962962962962963
math.pow(a, b) : -0.2962962962962963
=== -3 の 0 乗 ===
a ** b : 1
pow(a, b) : 1
math.pow(a, b) : 1.0
=== -3 の 1.5 乗 ===
a ** b : (-9.545177148524161e-16-5.196152422706632j)
pow(a, b) : (-9.545177148524161e-16-5.196152422706632j)
math.pow(a, b) : 計算できません
=== -3 の 3 乗 ===
a ** b : -27
pow(a, b) : -27
math.pow(a, b) : -27.0
=== -3 の -1.5 乗 ===
a ** b : (-3.5352507957496895e-17+0.19245008972987526j)
pow(a, b) : (-3.5352507957496895e-17+0.19245008972987526j)
math.pow(a, b) : 計算できません
=== -3 の -3 乗 ===
a ** b : -0.037037037037037035
pow(a, b) : -0.037037037037037035
math.pow(a, b) : -0.037037037037037035
Udemyの動画学習でもPythonを勉強しよう!
「平日の夜の勉強会には時間が間に合わなくて参加できない」「通勤時間のわずかな隙間時間を勉強時間にあてたい」「本ではよく分からないところを動画で理解を深めたい」そんなあなたはUdemyの動画学習がお勧めです!
UdemyのPythonおすすめ33講座レビューリスト