Pythonにさわってみる

読んでみたい書籍の幾つかはPythonで書かれているため、まずはPythonに触れて文法を覚えいくことにしました。

UbuntuにはデフォルトでPythonが入っているため、まずはバージョンを確認。

$ python --version
Python 2.6.6

調べてみたところ最新版は2.7.xと3.1.xの模様。バージョン3からは大きな変更が加わっているという話だったので、まずは2系の習得から。

$ python

対話モード起動。文法の確認程度ならこのモードで十分できそうです。

で、文法の確認

まずは基本。

>>> print "Hello World"
Hello World

でた。

ただ3系では上記の記述は使えないらしいです。

$ python3.1
>>> print "Hello World"
  File "<stdin>", line 1
    print "Hello World"
                      ^
SyntaxError: invalid syntax

なるほど、エラーになりました。

print関数のみに変更されたってことで、

>>> print("Hello World")
Hello World

これなら両バージョンで行けるようです。

ただイチイチ変更点を確認していると時間掛かりそうなので、なるべく3系のことは意識せずに進めていきます。

>>> a = 1
>>> type(a)
<type 'int'>
>>> b = "2"
>>> type(b)
<type 'str'>
>>> c = a + int(b)
>>> print(c)
3
>>> c * c #乗法
9
>>> c ** c #べき乗
27
>>> c % 2 #剰余
1
>>> c / 2 #除法
1
>>> c / 2.0 #型変換は自動的に行われないらしい
1.5
>>> type(3/2)
<type 'int'>
>>> type(3/2.0)
<type 'float'>
>>> type(2147483647)
<type 'int'>
>>> type(2147483648)
<type 'long'>

変数への代入、型の確認・変換、四則演算はこんなところ。他にもブール型、None型?、複素数型なんてものもあるようです。

注意すべきは整数同士の割り算をする場合、明示的に小数点をつけておかないと、思ったのとは違う結果になってしまうこと。

>>> a = [1,2,3,4,5,"6","あいう",[7,8,9]]
>>> for i in a:
... print(i)
  File "<stdin>", line 2
    print(i)
        ^
IndentationError: expected an indented block

Pythonではインデントも文法に組み込まれているため、そのあたりの規則を守れない悪い子は怒られる!

>>> for i in a:
...     print(i) #Pythonではインデント重要
... 
1
2
3
4
5
6
あいう
[7, 8, 9]

リストに色々な型を入れられるってのは面白いですね。

>>> a = [1, 2] #変更可能なリスト
>>> b = (1, 2) #変更できないタプル
>>> print a, b
[1, 2] (1, 2)
>>> a.append(3)
>>> b.append(3)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'tuple' object has no attribute 'append'
>>> print a, b
[1, 2, 3] (1, 2)

あとはキーバリューを扱う辞書型、集合を扱うセット型なんかもあるようです。

今回はサラッと流しながら確認したので、次からは実際にコードを読んだり書いたりしながら使い方を覚えていくことにします。