Python プログラムの基本(続き)
リスト型
Python では、複数のデータをリスト(配列)としてまとめることができます.リストは、カンマ区切りの値 (要素) の並びを角括弧で囲んだものとして書き表します. リストの各要素へは、 s[0] のように添字を使ってアクセスします.また、s[0:2] のように、スライシングを用いてリストの一部分を取り出すこともできます.>>> squares = [1, 4, 9, 16, 25] >>> squares [1, 4, 9, 16, 25] >>> squares + [36, 49, 64, 81, 100] [1, 4, 9, 16, 25, 36, 49, 64, 81, 100] >>> squares[0:2] [1, 4]
ディクショナリ(辞書)型
ディクショナリ(辞書)型は、キーと値をペアとしてデータを扱う型で、他の言語でも連想記憶やハッシュなどとして存在していることがあります.辞書は波括弧 {} で囲まれたキー(key): 値(value) のペアの集合であり、キーがは辞書の中で一意である必要があります.>>> tel = {'jack': 4098, 'sape': 4139} >>> tel['guido'] = 4127 >>> tel {'jack': 4098, 'sape': 4139, 'guido': 4127}
if 文による条件分岐
プログラム中、条件に応じて処理を分岐するには if / elif / else を使います.>>> x = int(input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: ... x=0 ... print('Negative changed to zero') ... elif x == 0: ... print('Zero') ... elif x == 1: ... print('Single') ... else: ... print('More') ... More
for 文による繰り返し処理
ループ処理を行うには for 文を使います.数列にわたって反復を行う場合は組み込み関数 range() を使用できます.また、break 文で繰り返し処理を抜けたり、 conntinue 文で反復処理の途中で次の反復に移ったりできます.>>> for i in [1, 2, 3]: ... print(i) ... 1 2 3 >>> for i in range(5): ... print(i) ... 0 1 2 3 4
>>> for n in range(2, 10): ... for x in range(2, n): ... if n % x == 0: ... print(n, 'equals', x, '*', n//x) ... break ... else: ... # loop fell through without finding a factor ... print(n, 'is a prime number') ... 2 is a prime number 3 is a prime number 4 equals 2 * 2 5 is a prime number 6 equals 2 * 3 7 is a prime number 8 equals 2 * 4 9 equals 3 * 3 >>> for num in range(2, 10): ... if num % 2 == 0: ... print("Found an even number", num) ... continue ... print("Found an odd number", num) Found an even number 2 Found an odd number 3 Found an even number 4 Found an odd number 5 Found an even number 6 Found an odd number 7 Found an even number 8 Found an odd number 9
def 文による関数定義
def 文を使って、あるまとまった処理を関数として定義しておき、プログラム中で再利用することができます.def の後には関数名と仮引数を置き、関数本体の実行文は次の行でインデントに続いて記述します.>>> def fib(n): # write Fibonacci series up to n ... """Print a Fibonacci series up to n.""" ... a, b = 0, 1 ... while a < n: ... print(a, end=' ') ... a, b = b, a+b ... print() ... >>> # Now call the function we just defined: ... fib(2000) 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597
class 文によるクラス定義
class 文を使って新しいクラスを定義することで、ユーザ独自のデータ構造やオリジナルのメソッド(関数)を使用することができます.クラスには init() という名前の特別なメソッド(コンストラクタ)が存在し、クラスのインスタンスが生成されるたびに一度だけ自動的に呼び出されます.必要なデータの初期化等もこの処理の中に実装します.class Dog: def __init__(self, name): self.name = name self.tricks = [] # creates a new empty list for each dog def add_trick(self, trick): self.tricks.append(trick) >>> d = Dog('Fido') >>> e = Dog('Buddy') >>> d.add_trick('roll over') >>> e.add_trick('play dead') >>> d.tricks ['roll over'] >>> e.tricks ['play dead']