とらりもんHOME  Index  Search  Changes  Login

python入門: 演算

次に, pythonでいろいろな計算をやってみよう。まず, $ ipython3というLinuxコマンドでpythonシェルを立ち上げ, その上で, 以下の課題をやろう:

課題: pythonシェルで以下の命令をやってみよ。

3+2
3-2
3*2
3/2
2+3*4

普通に, 5, 1, 6, 1.5, 14という答が帰ってくるだろう。+, -, *, /はそれぞれ加算, 減算, 乗算, 除算である。+と*が混在する計算はどのような順序で処理されるかを考えよ。

課題: pythonシェルで以下の命令をやってみよ。

2/3/4
(2/3)/4
2/(3/4)
2/3*4
(2/3)*4
2/(3*4)

この問から, *と/が混在する計算はどのような順序で処理されるかを考えよ。

課題: pythonシェルで以下の命令をやってみよ。

6/(5/(4/3))
6/[5/(4/3)]
6/{5/(4/3)}

最初の命令は正しい答(1.6)を返してくるが, ほかの2つはエラーが出るだろう。なぜか? pythonでは, 数式の計算順を表す括弧は()だけである。[ ]や{ }は別の意味を表す括弧なので, 数式の計算順には使えないのだ。

課題: pythonシェルで以下の命令をやってみよ。

3**2
10**4
2*3**4
(2*3)**4
2*(3**4)

この, **はどういう意味だろうか? *と**が混在する計算はどのような順序で処理されるかを考えよ。

課題: pythonシェルで以下の命令をやってみよ。

3%2
10%4
4*5%3

この%はどういう意味だろうか? %と*が混在する計算はどのような順序で処理されるかを考えよ。

以上の課題で, pythonで簡単な数値計算をやる雰囲気がつかめただろう。大事なことは,

  • 加減乗除は+, -, /, *という記号。
  • 括弧()に囲まれた部分から先に計算される。
  • 計算順を表す括弧は()だけ。[]や{}は使っちゃダメ!
  • 括弧()が無い場合は, 加・減より乗・序の方が先に計算される。
  • 括弧()が無い場合は, 乗・序は左から順に計算される。
  • **はべき乗。
  • %は剰余(割った余り)
  • **や%が入ってくると, 計算の順序がややこしくなる。
  • こういうややこしい計算順序は, 機械は覚えてても人間は覚えてられないので, できるだけ括弧を使って計算順序を明示しよう!

以上は数値の演算だったが, pythonでは「文字列の演算」もできる。pythonシェルで以下を打ってみよう:

x='apple'
y='juice'
x+y
x*3

ここで, xもyも文字列である。そして, x+yは, なんと, 'applejuice'になっているではないか! さらに, x*3は'appleappleapple'と, appleが3回繰り返されているではないか!

こうなると, appleとjuiceの間や, appleどうしの間にスペースも入れたくなってくる。それにはこうすればよい:

x+' '+y
(x+' ')*3

課題: 以下を試してみよ。いくつかはエラーが出るだろう:

x+x
3*x
x*2.0
x/y
x/2

(ブラウザの戻るボタンで戻って下さい)

Last modified:2019/01/22 22:58:07
Keyword(s):
References:[python入門]