Python学習編9回目です。
前回は東京大学のPython学習ページで2-2. リスト (list)を学びました。今回は2-3. 条件分岐。
今回の練習問題はこちら
関数 exception9(a)
の引数は以下の条件を満たすとします。
- 引数
a
には、長さが9のリストが渡されます。 - このリストの要素は整数ですが、1つの要素を除いて、残りは要素の値は全て同じとします。
その1つの要素の値を返すように、以下のセルの ...
のところを書き換えて exception9(a)
を定義してください。
うーん、わからん。させたいことは思いついてるが、どういう関数を使えば実現できるのかがわからん。単語が分からない外国語みたいだ。ChatGPTに頼るか。
入力:9個の整数の入ったリストaに対し以下のアルゴリズムを実行するためのpython関数を提示してください
・a[0]とa[1]が同一か判定する
・a[0]とa[1]が同一の場合、a[2]からa[8]に至るまで、a[0]と同一か判定し、a[0]と異なる値が出た場合、その値を返す
・a[0]とa[1]が異なる場合、a[0]、a[1]のうちa[2]と異なる方の値を返す
出力:このアルゴリズムを実装するためのPython関数を以下に示します。この関数は、指定された条件に基づいて整数のリストa
を処理します。リストa
は9個の整数を含む必要があります。
pythonCopy code
def process_list(a):
# a[0]とa[1]が同一か判定する
if a[0] == a[1]:
# a[2]からa[8]に至るまで、a[0]と同一か判定する
for value in a[2:]:
# a[0]と異なる値が出た場合、その値を返す
if value != a[0]:
return value
# 全ての値がa[0]と同一の場合、特に異なる値が見つからないため、Noneを返す
return None
else:
# a[0]とa[1]が異なる場合、a[0]、a[1]のうちa[2]と異なる方の値を返す
if a[2] != a[0]:
return a[0]
else:
return a[1]
あー、for value in リストでリストの値引っ張ってきて比較するのか。これリストの値引っ張ってくる方法が分からなかったのか。大学の情報学部とかならこの辺の基本的な単語の暗記が必要なんだろうけど、GPTに聞きながらやってみるかな
次回に続く