前提・実現したいこと
・Lをint型の要素をもつリストとする
・Lに最初に現れる偶数を返す
・Lが偶数を含まなければValueErrorを引き起こす
というプログラムを作成しようと思ったのですが
発生している問題・エラーメッセージ
elifに分岐するようなL(ここでは13579)を代入しても、Shellに結果が何も表示されません。
私の考えでは raise ValueError(L, 'does not contain even number') が立ち上がると思っていました。
該当のソースコード
def findAnEven(L): """Lをint型の要素をもつリストとする Lに最初に現れる偶数を返す Lが偶数を含まなければValueErrorを引き起こす""" L = str(L) L = list(L) #list化する try: for i in L: #listの中から数値を取り出して偶数か確認する i = int(i) if i%2 == 0: #偶数だったら脱出 print(i) break #ループを脱出(forに対応) elif i%2 != 0 and i == L[-1]: raise ValueError(L, 'does not contain even number') except ValueError as e: print(e) findAnEven(13579)
試したこと
if条件外でprint(L[-1])を試してみたところ正常に値を返しました。
私の結論としてはif条件内ではリストを参照する行為ができないという考えに至ったのですが、コードに不備がありましたらご教授の程宜しくお願いします。
補足情報(FW/ツールのバージョンなど)
回答1件
あなたの回答
tips
プレビュー