とらりもんHOME  Index  Search  Changes  Login

とらりもん - python入門: Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

では, pythonの基礎を少しずつ学んでいこう。最初は, pythonでどのように情報(データ)を扱うか, その基礎を学ぶ。まず, pythonシェル(ipython3)を立ち上げて, 以下を打ってみよう(In [ ]:の右のところだけ打てばよい。Out[ ]以下はpythonが返してくる答なので君は打つ必要はない):
In [1]: x=3
In [2]: x
Out[2]: 3
ここでx=3というのは, xという{{fontc(変数, red)}}に3という数値を代入せよというコマンド(命令)である。「変数」とか, 変数に値を「代入する」とかは, 普通の数学と同じような概念や操作である。その次のxというのは, xの内容を表示せよというコマンドである。

では, 続けて次を打ってみよう:
In [3]: type(x)
Out[3]: int
このtype(x)というのは, xがどのような{{fontc(型, red)}}のものか?と聞いている。そして, pythonからの解答は{{fontc(int, red)}}であった。この「型」とか「int」の意味は後で学ぶので, 続けて以下を打って欲しい:
In [4]: y=3.0
In [5]: y
Out[5]: 3.0
In [6]: type(y)
Out[6]: float
ここで, yは3.0というふうに, わざと小数点つきの表現をした。すると, yの型は{{fontc(float, red)}}というものだとわかった。気になることが増えてきたが, 説明は後回しにして, どんどん進もう。次を打ってみよう:
In [7]: z="University of Tsukuba"
In [8]: z
Out[8]: 'University of Tsukuba'
In [9]: type(z)
Out[9]: str
こんどは変数zに, 我々の大学の名前を「代入」した。これは数値ではないから, もはや数学的な意味での変数や代入ではなくなっている。それでもpython業界やIT業界ではzを変数と呼ぶのだ。そしてzの型は{{fontc(str, red)}}というものだった。いろいろ気になる気持ちを抑えて, 次を打ってみよう:
In [10]: x+y
Out[10]: 6.0
これはわかるだろう。xとyを足し算せよという命令であり, pythonは正しい答えを出している。では次はどうだろう?
In [11]: x+z
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-12-67f19d914e73> in <module>()
----> 1 x+z

TypeError: unsupported operand type(s) for +: 'int' and 'str'
なんか変なのが出てきた。TypeErrorと言っている。最後のメッセージを和訳すると, 「型のエラー: intとstrに対して+という演算なんか知らねーよ!怒」となる。

なぜこんなエラーが出たのだろうか? 簡単な話である。x, すなわち3という数と, z, すなわちUniversity of Tsukubaという文を「足し算する」というのは無意味で無茶な命令であり, pythonが怒るのも無理はない。

そういう考えで上のエラーメッセージを見ると, intというのはxの型, strというのはzの型である。実は{{fontc(intは「整数」, red)}}(integerの略), {{fontc(strは「文字列」, red)}}(文字を並べたもの, つまり文章。stringの略)を意味する。そして, {{fontc(「型」, red)}}とは, このようにデータ(3とかUniversity of Tsukubaとか)が{{fontc(どのような種類のものかを表す属性, red)}}である。

データの「型」という概念は, pythonに限らずほぼ全てのプログラミング言語に存在する, とても大切な概念である。型を適切に意識してプログラムを組んだりデータを整形したりしないと, 計算機は正しく動かない。

ちなみに, {{fontc(floatは「実数」の型, red)}}である。英語のfloatの直接的な意味は「浮く」である。なんで「浮く」が「実数」を意味するのか? それは, 計算機の内部では実数は[[「浮動小数点数」(floating point number)|https://ja.wikipedia.org/wiki/%E6%B5%AE%E5%8B%95%E5%B0%8F%E6%95%B0%E7%82%B9%E6%95%B0]]という仕組みで表現されるからだ。詳しいことはそのうち学ぼう。

[レポート課題3-1] pythonシェルで以下の命令をやってみよ。意味を考えよ。
x=2e3
x
x=2e-3
x
解説: このように, 「数値e数値」という表現法も, 計算機ではよく使う。その意味をしっかり理解しよう。

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