前提・実現したいこと
Pythonで5つの異なる数字の入力を求めているため、同じ数字の入力はできないというメッセージをだして、入力しなおす形にしたいです。
発生している問題・エラーメッセージ
同じ文字が2回3回あると何度もメッセージが表示されます。
'42377'など4桁目と5桁めが同じ場合は受け付けられてしまいます。
該当のソースコード
def f(): while True: n = input("5つの異なる数字を入れてください: ") nList =list(n) try: int(n) if len(n)== 5: for i in range (5): if nList.count(nList[i]) == 1: return n else: print("同じ数字は使えません.") else: print("5桁の数字が必要です") except ValueError: print("数字を入れてください") except: print("入力したものは受け付けできませんでした") f()
試したこと
printがレンジの中にはいっているため、メッセージは複数回出ているのだと思います。
他にどういうやり方があるのかが思い当たりません。
どうぞよろしくお願いします。
「'42377'など4桁目と5桁めが同じ場合は受け付けられてしまいます。」 ← 理由は分かっていますか?
「printがレンジの中にはいっているため、メッセージは複数回出ているのだと思います。」 ← ”思う”ではなくデバッグして確かめましょう。
回答4件
あなたの回答
tips
プレビュー