# 21.タプル型
# タプル型は、値を代入したら、後は読み込むだけの使い方をする
print('===============================')
print('---------------')
t = (1, 2, 3, 4, 1, 2)
                    # タプルは'()'の配列
print(t)
print(type(t))

# t[0] = 199        # タプルには代入はできない

print(t[0])         # でも、リストのように値を取り出すことはできる
print(t[-1])
print(t[2:5])

print('最初の1は:', t.index(1))
                    # リストのようにメソッドを使うこともできる
print(t.index(1,1))

print('1の数は:', t.count(1), '個')   # coundメソッドも使える

# ちなみに、タプルのヘルプ
# print(help(tuple))
                    # countとindexくらいしかない

print('---------------')
t = ([1, 2, 3], [4, 5, 6])
                    # タプルにリストの配列を代入する
print(t)
t[0][0] = 100       # タプルの中のリストには代入できる
print(t)

print('---------------')
t = ((1, 2, 3), (4, 5, 6))
                    # タプルの中にタプルの配列を入れる
print(t)
# t[0][0] = 100     # タプルの中のタプルにも代入はできない

# 22.タプルの案パッキング
print('===============================')
print('---------------')
num_tupple = (10, 20)
                    # 数値が入ったタプルを用意する
print(num_tupple)

x, y = num_tupple
                    # タプルの中身をそれぞれxとyに代入する
print('xの値:', x)
print('yの値:', y)

# これの応用。複数の変数に一行で代入する
min, max = 0, 300
print(min, max)

# タプルを使えば、変数の入れ替えも一行でできる
min, max = max, min
                    # 変数を入れ替える
print(min, max)

# 23.タプルの使いどころ
# 三択問題から、二つを選択するアプリを考えてみる
print('===============================')
chose_from_two = ('A', 'B', 'C')
                    # 三択の選択肢を用意する
ansswer = []        # 正解を配列で用意する
ansswer.append('A')
ansswer.append('C')
                    # AとCが正解
print(chose_from_two)
print(ansswer)
# タプルにしておけば、上書きができないため、参照専用の配列はタプルを使うのがよい
print('===============================')
print('---------------')
