前提・実現したいこと
pythonでランダムな問題集ファイルを作成しており、以下のようにコードを書いたのですが、問題集35のみに問が出るだけで、そのほかの問題集134には問がのっていない状況です。そして、35も本来なら147までの問が出るように書いているつもりですが、問が47しか出ていません。この状況を改善し、35通りの問題で、47問の4択問題を作成したいので、改善すべき点を教えて欲しいです。
発生している問題・エラーメッセージ
import random
capitals = {'北海道':'札幌',
'青森':'青森','岩手':'盛岡','宮城':'仙台','秋田':'秋田','山形':'山形','福島':'福島',
'茨城':'水戸','栃木':'宇都宮','群馬':'前橋','埼玉':'さいたま','千葉':'千葉','東京':'東京','神奈川':'横浜',
'新潟':'新潟','富山':'富山','石川':'金沢','福井':'福井',
'山梨':'甲府','長野':'長野','岐阜':'岐阜','静岡':'静岡','愛知':'名古屋',
'三重':'津','滋賀':'大津','京都':'京都','大阪':'大阪','兵庫':'神戸','奈良':'奈良','和歌山':'和歌山',
'鳥取':'鳥取','島根':'松江','岡山':'岡山','広島':'広島','山口':'山口',
'徳島':'徳島','香川':'高松','愛媛':'松山','高知':'高知',
'福岡':'福岡','佐賀':'佐賀','長崎':'長崎','熊本':'熊本','大分':'大分','宮崎':'宮崎','鹿児島':'鹿児島',
'沖縄':'那覇'}
for quiz_num in range(35):
quiz_file = open('capitalsquiz{}.txt'.format(quiz_num + 1),'w')
answer_key_file = open('capitalsquiz_answers{}.txt'.format(quiz_num + 1),'w')
quiz_file.write('名前:\n\n日付:\n\n学期:\n\n') quiz_file.write((' '*20) + '都道府県所在地クイズ(問題番号{})'.format(quiz_num + 1)) quiz_file.write('\n\n') prefectures = list(capitals.keys()) random.shuffle(prefectures)
for question_num in range(len(prefectures)):
correct_answer = capitals[prefectures[question_num]] wrong_answers = list(capitals.values()) del wrong_answers[wrong_answers.index(correct_answer)] wrong_answers = random.sample(wrong_answers,3) answer_options = wrong_answers + [correct_answer] random.shuffle(answer_options)
quiz_file.write('{}.{}の都道府県庁所在地は?\n'.format(question_num + 1,prefectures[question_num]))
for i in range(4):
quiz_file.write('{},{}\n'.format('ABCD'[i],answer_options[i]))
quiz_file.write('\n')
answer_key_file.write('{}.{}\n'.format(question_num + 1,'ABCD'[answer_options.index(correct_answer)]))
quiz_file.close()
answer_key_file.close()
#作成されたファイル
名前:
日付:
学期:
都道府県所在地クイズ(問題番号35)
47.宮城の都道府県庁所在地は?
A,青森
B,仙台
C,水戸
D,富山
エラーメッセージ
該当のソースコード
ソースコード
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー