====== 即席ヘビつかい講座 ====== * [[データ構造|データ構造]] * [[入出力|入出力]] * [[制御構造|制御構造]] * [[関数・外部手続き|関数・外部手続き]] ===== データ構造 ===== ==== 整数・実数・複素数 ==== 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] ==== 辞書 ==== ==== クラス ====