【1行で書ける!】pythonでべき乗を計算する方法

今日は、pythonで数式のべき乗を計算する方法を紹介します。

「べき乗の計算の仕方がわからない」
「実はfor文でやってました…」

という方、べき乗の計算は簡単にできますので、ぜひ本記事に目を通していってください!

この記事では

・べき乗とは
・pythonでべき乗を計算する方法

について紹介致します。

べき乗とは

まずはじめにべき乗について確認しましょう。

べき乗はと表記し、「aをn回掛け算する」計算を言います。

aを基数、nを指数と言います。

「基数」、「指数」はあとの内容でも使われますので覚えていただけますと幸いです。

また、べき乗に関連して、累(るい)乗という言葉もあります。

これは、指数が自然数(0を含まない正の整数)である場合に言われる呼び方です。

べき乗についておさらいした所で、pythonでべき乗を計算する方法について以下で紹介致します。

pythonでべき乗の計算をする方法

pythonでべき乗の計算をする時、for文を使ってはいませんか?

for文でべき乗を計算させるには、以下のように行います。

S = a =  2
n = 10

for i in range(n-1):
    S *= a

print(S)

確かにこれでもべき乗の合計を得ることはできます。

しかしこれではぱっと見てもべき乗の計算をしているとわかりませんよね。

pythonでは一目見てどういった処理をしているかがわかる、可読性を重要視しています。

可読性の観点では、この実装の仕方はあまり好ましくありません。

もっと簡単にわかりやすく実装したいですよね。

そこでpythonでは、これを1行で簡単に書くことができるようになっています!

その方法は2つ。

どちらも特別な手順は必要ないので、簡単に実装する事ができます。

以降ではその具体的な方法を紹介していきます。

演算子を使う方法

まずはより簡単な演算子を使う方法です。

a = 2
n = 10

print(a ** n)

演算子の"**"を使うだけです。

これによりべき乗の計算が可能になります。

実行結果:

1024

また、指数は負数や小数にする事も可能ですので、ルートの値についても計算可能です。

a = 2
n1 = -2
n2 = 0.5

print(a ** n1)
print(a ** n2)

実行結果:

0.25
1.41421356237

関数を使う方法

べき乗はpow()を使って計算する事も可能です。

pow(x, y[, z])における引数の内容は以下になります。
・x:基数
・y:指数
・z:xをzで割る(入力任意)

まずは、x, yのみ入力した形で試してみましょう。

powを使うのにインポートは必要ありません

そのまま呼び出しましょう。

print(pow(2, 10))

実行結果:

1024

正しく計算ができましたね。

こちらは演算子「**」を使った場合と等価です。

今度はzも入力したものを確認しましょう。

zを入力した場合は、をzで割り、その剰余(余り)が返ります

実際のコードをご確認ください。

print(pow(3, 2, 2))

実行結果:

1

3の2乗は9になり、それを2で割ったので余りが1になります。

正しく計算できていますね。

注意点として、zを入力する場合に限り、yは正の整数(0を含む)となっている必要があります。

べき乗を使う上での注意点

簡単にべき乗の計算をする方法を紹介致しましたが、いくつか気をつけていただきたい注意点があります。

まずはじめに、以下のコードをご確認ください。

print(-2 ** 2)
print(pow(-2, 2))

これを実行するとどうなるでしょうか?

一見どちらも「4」となるように思われますが…

-4
4

演算子で計算した場合だと-4となってしまっています

こうなってしまう理由は、評価の順番にあります。

というのも、公式ドキュメントに以下のような記載があります。

べき乗演算子と単項演算子からなる演算列が丸括弧で囲われていない場合、演算子は右から左へと評価されます。

つまり、-(2**2)という風に扱われてしまっているんですね。

対処方としては、丸括弧で囲うことです。

print((-2) ** 2)

実行結果:

4

これで正しく計算できました。

ただ、こういった対処をするくらいならpow()を使う方が得策かもしれませんね。

まとめ

いかがでしたでしょうか?

pythonでのべき乗計算はすごく簡単ですね!

今回の記事では、

・べき乗とは
・pythonでべき乗を計算する方法

について説明いたしました。

どちらの方法も特別な手順を踏まずに計算できるので、ぜひここで覚えて使いこなせるようになってください!

LINEで送る
Pocket

SEからWebエンジニアへ転職した理由

侍エンジニア塾卒業生の小池さんは、以前は社内SEとして約5年ほど勤務していました。しかし業務内容は社内のヘルプデスク対応など、プログラムを書く仕事は全くなかったそうです。

SEながらプログラムを書けない現状に「将来仕事がなくなるんじゃないか」と不安を感じ、プログラミング学習を決意。

弊社スクールで学習し、無事ベンチャー企業のプログラマーとして転職に成功しました。そんな小池さんの学習法や転職体験談を伺いましたので、是非ご覧ください。

「プログラミングができないSEは仕事がなくなる」不安を感じたSEが未経験から転職成功するまで
更新日 : 2019年10月7日

書いた人

遠藤貴大

遠藤貴大

1991年生まれ。双子座。
理系大学で認証システムを学んだ後、アプリ開発者となる。
新しく学ぶ人に寄り添った記事を心がけて執筆します。
芸術が好き。いつか猫と暮らすのが夢。

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説