Lesson 1: データ構造と四則演算

整数・実数・複素数

pythonではおなじみの整数や実数に加えて複素数を扱うことができます。

>>> a = 2; b = 3
>>> print a + b, a - b, a*b, a/b, a%b
5 -1 6 0 2 
>>> a = 2.; b = 3.; print a + b, a - b, a*b, a/b
5.0 -1.0 6.0 0.666666666667 
>>> a = 2 + 1J; b = 3 - 2J; print a + b, a - b, a*b, a/b
(5-1j) (-1+3j) (8-1j) (0.307692307692+0.538461538462j)

虚数単位はJまたはjで表します。1+jのような場合も必ず1+1jとしなければならないことに注意をしてください。実数部と虚数部とに小数点をつけなくても、それぞれ実数扱いになります。

実数部・虚数部は

>>> a = 3 + 2J; print a.real, a.imag 
3.0 2.0

のように参照できます。

リストとタプル

「配列」に相当するのが「リスト」と「タプル」です。

>>> a = [1, 2, 4, 8, 16] 
>>> print a[0], a[1], a[2], a[3], a[4] 
1 2 4 8 16

リストの要素にアクセスする方法はc言語の配列と同様です。違うのは、

>>> print a[-1], a[-2], a[-3], a[-4], a[-5] 
16 8 4 2 1

おおっ、自動的に周期境界条件が?と思いきや、

>>> print a[5] 
IndexError: list index out of range 
>>> print a[-6] 
IndexError: list index out of range

残念。そうは問屋が下ろしません。

a = [1, 2]; b = [4, 8]; print a + b
[1, 2, 4, 8] 
>>> a = (1, 2); b = (4, 8); print a + b
(1, 2, 4, 8) 
>>> a = [1, 2]; b = ['a', 'b']; print a + b
[1, 2, 'a', 'b'] 
>>> a = (1, 2); b = ('a', 'b'); print a + b
(1, 2, 'a', 'b') 
>>> a = a + b; print a
(1, 2, 'a', 'b') 
>>> print a[0]
1 
>>> print a[-4], a[-3], a[-2], a[-1], a[0], a[1], a[2], a[3] 
1 2 a b 1 2 a b 
>>> print a[-5] 
IndexError: tuple index out of range 
>>> print a[4]
IndexError: tuple index out of range 
>>> a = [1, 2]; b = ('a', 'b'); print a + b 
TypeError: can only concatenate list (not "tuple") to list 
>>> a = [1, 2, 4, 8]; a[1] = 16; print a
[1, 16, 4, 8] 
>>> a = (1, 2, 4, 8); a[1] = 16
TypeError: object doesn't support item assignment

range()関数

range()は整列した整数からなる「リスト」を作り出す関数です。

>>> a = range(4); print a
[0, 1, 2, 3] 
>>> a = range(-3, 4); print a
[-3, -2, -1, 0, 1, 2, 3] 
>>> a = range(-3, 4, 2); print a
[-3, -1, 1, 3]

range()で作成される「リスト」の要素は「整数」だけです。

>>> a = range(-3.1, 4.2, 2.2); print a
DeprecationWarning: integer argument expected, got float 
[-3, -1, 1, 3]
seminar/python_tutorial_lesson1.txt · 最終更新: 2009/06/03 20:12 by kimi
www.chimeric.de Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0