Kenta-K
@Kenta-K

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

Python3 リストでクイズ作成 23区を標準入力

解決したいこと

条件
・リストにあらかじめ23区名を用意します
・下記の条件を使用
1. "end":終了
2. "?":解答済みのものを出力
3. 23区と比較:解答済みか否か,
4. 新規解答 True→終了,False→正解,重複→解答済

ここに 現時点では1度入力(例:渋谷)すると正解と出て終わってしまいます
そこで 何度も入力できるようにしたいです 解答はansリストが記憶していくようにしたいです
たとえば渋谷を入力して正解したら次の入力が促されて入力できるようにしたいです
もし重複する解答を入力した場合解答済みと表示
endを入力すると 強制終了
?を入力すると すでに回答したものがリストとして表示

該当するソースコード

''' diff_python3

条件追加
"end":終了
"?":解答済みのものを出力
23区と比較:解答済みか否か,
新規解答 True→終了,False→正解,重複→解答済

tokyo23 = ["千代田","中央","港","新宿","文京","台東","墨田","江東","品川",
"目黒","大田","世田谷","渋谷","中野","杉並","豊島","北","荒川",
"板橋","練馬","足立","葛飾","江戸川"]

解答を覚えるリスト(重複を避ける)
+ ans =[]
+
+ #while文とif文
+ while True:
+ kumei = input("東京23区の名前を入力せよ(区は不要,終了は「end」)")
+ # 同じ区名を一度しか入力出来ないようにする
+ if kumei == "end": # 終了
+ print("中断")
+ break
+ elif kumei== "?":
+ print(ans)
+ elif kumei in tokyo23: # 解答があるとき
+ if kumei not in ans: # 初めての解答であれば区名リストに追加
+ ans.append(kumei)
+ print("正解")

+ if len(tokyo23) == len(ans):
+ print("End")
+ break
+ elif kumei in ans: #解答済みの場合
+ print("解答済")
+ else:
+ print("不正解 23区にはありません")

a.jpg

0

4Answer

インデントが反映されていないので反映されるようにシンタックスハイライトを有効にして書いていただけますか?

0Like

22行目のbreakで,1度でも正解すると抜けるようになってますね.
全て回答し切った後にwhileループを抜けたいのであれば, print("End")と同じ高さのインデントにする必要があると思います.

0Like

Comments

  1. @Kenta-K

    Questioner

    ありがとうございます

This answer has been deleted for violation of our Terms of Service.

This answer has been deleted for violation of our Terms of Service.

Your answer might help someone💌