Pythonでの2乗の計算方法とは?算術演算子や組み込み関数pow()を使った方法を紹介!
- システム
エンジニア - Pythonで2乗の計算のやり方が分からなくて困っています。
- プロジェクト
マネージャー - 算術演算子や組み込み関数pow()を使ってPythonの2乗を計算する方法をご紹介しましょう。
べき乗とは?
1つの数字を繰り返し掛け合わせていく計算を「べき乗」と呼びます。「べき乗」は通常「aのn乗」と表現されます。ここで、aは掛け合わせたい数字、nは掛け合わせる回数をさしています。
例えば「3の2乗」は「3を2回掛け合わせた数字」というように読み取ることができます。これは、数式で3^2
のように表現されます。
Pythonでの2乗の計算方法
Pythonで2乗の結果を算出するには、算術演算子を使う方法と、組み込み関数pow()を使う方法があります。どちらの方法も計算結果は同じになりますが、使用方法が異なります。
また、正しい計算結果を得るための注意点もありますので、それぞれPythonのソースコードを実際に書いて、確認していきましょう。
算術演算子を使う方法
Pythonでは「べき乗」を算術演算子**
を使って計算することができます。a(数字)とn(掛け合わせる回数)を使うと「aのn乗」はa**n
と書くことで計算結果が得られます。それでは具体的に「3の2乗」を計算するPythonのソースコードと、結果を確認してみましょう。
1
2
3
4
5
|
# 算術演算子を使って「3の2乗」を算出
3**2
9
|
「3の2乗」の計算結果として9
が返されていることがわかります。
組み込み関数pow()を使う方法
Pythonでは「べき乗」を組み込み関数pow(a,n)
を使って計算することができます。ここで関数powに引数としてa(数字)とn(掛け合わせる回数)をわたしています。それでは具体的に「3の2乗」を計算するPythonのソースコードと、結果を確認してみましょう。
1
2
3
4
5
|
# 組み込み関数pow()を使って「3の2乗」を算出
pow(3,2)
9
|
算術演算子を使う方法と同様に、「3の2乗」の計算結果として9
が返されていることがわかります。
注意点
Pythonでのべき乗計算では、算術演算子の優先順位と、ゼロ除算の2点に注意する必要があります。これらのことに気をつけていれば、計算結果が想定と異なっていたり、エラーが出力されたりすることもないので、それぞれ確認しておきましょう。
算術演算子の優先順位
算術演算子の優先順位にミスがある場合、計算結果が想定と異なることがあります。下記の表に、算術演算子の優先順位をまとめましたので、確認ください。Pythonにおけるべき乗の算術演算子は、数学と同様に優先順位の高いものとなっています。
ここで見落としやすいミスとして、べき乗の算術演算子は、単項演算子よりも高い優先度となることを確認しておきましょう。
1
2
3
4
5
6
7
8
|
# べき乗の算術演算子が、単項演算子よりも高い優先度となることを確認
# 「-1の2乗」を算出したい場合
-1**2
-1
(-1)**2
1
|
ここで1つ目の計算式-1**2
では、結果に-1
が返されています。1**2
が先に計算され、そのあとに-
がつけられたため、想定していた1
とは異なる結果となっています。
2つ目の計算式-(-1)**2
では、-1
が返されているので、「-1の2乗」の正しい結果が算出されたことがわかります。
優先順位に不安がある場合は、()
でかこむと、その中の計算が優先されるため、確実な方法となります。
算術演算子 | 用法 | 優先順位 |
---|---|---|
** | べき乗 | 1 |
+a, -a | 正数、負数 | 2 |
*, /, //, % | 乗算、除算、切り捨て除算、剰余 | 3 |
+, – | 加算、減算 | 4 |
ゼロ除算
「0の-n乗」を計算するとゼロ除算エラーとなってしまいます。具体的に「0の-2乗」を計算する方法と、結果を確認してみましょう。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
# 算術演算子を使って「0の-2乗」を算出
0**-2
---------------------------------------------------------------------------
ZeroDivisionError Traceback (most recent call last)
<ipython-input-14-0977f3c7b6c8> in <module>()
1 # 算術演算子を使って「0の-2乗」を算出
----> 2 0**-2
ZeroDivisionError: 0.0 cannot be raised to a negative power
# 組み込み関数pow()を使って「0の-2乗」を算出
pow(0,-2)
---------------------------------------------------------------------------
ZeroDivisionError Traceback (most recent call last)
<ipython-input-15-fc7d7e3d707e> in <module>()
1 # 組み込み関数pow()を使って「0の-2乗」を算出
----> 2 pow(0,-2)
ZeroDivisionError: 0.0 cannot be raised to a negative power
|
算術演算子を使った方法と、組み込み関数pow()を使った方法で、その結果を確認しました。どちらも同じエラーメッセージZeroDivisionError
(ゼロ除算エラー)が表示されていることがわかります。
様々なべき乗の計算方法
算術演算子を使った方法と組み込み関数pow()を使った方法で、数字をかえて動作を確認してみましょう。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
# 算術演算子を使って「4の-3乗」を算出
4**-3
0.015625
# 算術演算子を使って「4の-2乗」を算出
4**-2
0.0625
# 算術演算子を使って「4の-1乗」を算出
4**-1
0.25
# 算術演算子を使って「4の0乗」を算出
4**0
1
# 算術演算子を使って「4の1乗」を算出
4**1
4
# 算術演算子を使って「4の2乗」を算出
4**2
16
# 算術演算子を使って「4の3乗」を算出
4**3
64
# 組み込み関数pow()を使って「5の-3乗」を算出
pow(5,-3)
0.008
# 組み込み関数pow()を使って「5の-2乗」を算出
pow(5,-2)
0.04
# 組み込み関数pow()を使って「5の-1乗」を算出
pow(5,-1)
0.2
# 組み込み関数pow()を使って「5の0乗」を算出
pow(5,0)
1
# 組み込み関数pow()を使って「5の1乗」を算出
pow(5,1)
5
# 組み込み関数pow()を使って「5の2乗」を算出
pow(5,2)
25
# 組み込み関数pow()を使って「5の3乗」を算出
pow(5,3)
125
|
for文を使うと、簡単に上記の計算が確認できます。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
# 算術演算子を使って「4の-3乗」~「4の3乗」を算出
for i in range(-3, 4, 1):
print(4 ** (i))
0.015625
0.0625
0.25
1
4
16
64
# 組み込み関数pow()を使って「5の-3乗」~「5の3乗」を算出
for i in range(-3, 4, 1):
print(pow(5,i))
0.008
0.04
0.2
1
5
25
125
|
- システム
エンジニア - Pythonでは2乗の計算結果を得る場合、算術演算子を使う方法と組み込み関数pow()を使う方法があるのですね。
- プロジェクト
マネージャー - その通りです。ただ、算術演算子の優先順位とゼロ除算の2点に注意してください。
まとめ
いかがでしたでしょうか。Pythonでは、2乗の計算結果を得ようとする場合、算術演算子を使う方法と組み込み関数pow()を使う方法があります。どちらを使っても同じ結果が得られます。
そして、この方法で数字をかえれば、様々なべき乗計算が可能です。
算術演算子の優先順位や、ゼロ除算には注意が必要です。計算の優先順位は()
で変更することができます。優先順位に確信がもてない場合は、()
を使うようにしましょう。
ゼロ除算は、繰り返し処理のなかで発生するなど、ソースコード上に直接ゼロ除算の記述がないことがあります。エラーメッセージが出力されてしまうので、べき乗計算をする場合は気をつけるようにしましょう。
ぜひご自身でソースコードを書いて、動作を確認してみてください。エラーメッセージも含めて確認しておくと、今後の開発で同様のエラーメッセージを見たときのヒントになります。
FEnet.NETナビ・.NETコラムは株式会社オープンアップシステムが運営しています。
株式会社オープンアップシステムはこんな会社です
秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
数多くのエンジニアが集まります。
-
スマホアプリから業務系システムまで
スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。
-
充実した研修制度
毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。
-
資格取得を応援
スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。
-
東証プライム上場企業グループ
オープンアップシステムは東証プライム上場「株式会社オープンアップグループ」のグループ企業です。
安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。
株式会社オープンアップシステムに興味を持った方へ
株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。
年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。
Python新着案件New Job
-
マルチロガーソフト開発/東京都豊島区/【WEB面談可/C#経験者/20代後半~40代の方活躍中/経験年数不問】/在宅勤務
月給41万~50万円東京都豊島区(池袋駅) -
マルチロガーソフト開発/東京都豊島区/【WEB面談可/C#経験者/20代前半の方活躍中/経験1年以上の方活躍中】/在宅勤務
月給29万~34万円東京都豊島区(池袋駅) -
商品化予定の振動センサーの運用保守/Python/東京都都内/【WEB面談可】
月給50万~60万円東京都都内(-駅) -
商品化予定の振動センサーの可視化UI開発のテスター/Python/東京都都内/【WEB面談可】
月給25万~35万円東京都都内(-駅) -
商品化予定の振動センサーの運用保守/Python/東京都都内/【WEB面談可】
月給50万~60万円東京都都内(-駅) -
商品化予定の振動センサーの可視化UI開発のテスター/Python/東京都都内/【WEB面談可】
月給25万~35万円東京都都内(-駅)