以前のリビジョンの文書です


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.1244018279.txt.gz · 最終更新: 2009/06/03 17:37 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