複雑なデータ①
meibo = {
'加藤貴之':{
'生年月日':'1983/10/1',
'性別': '男',
'住所':'兵庫県朝来市...',
'電話番号':'090-4494-6175'
},
'山田一郎':{
'生年月日':'1980/1/1',
'性別': '男',
'住所':'兵庫県神戸市...',
'電話番号':'090-1234-5678'
},
'鈴木花子':{
'生年月日':'1990/12/31',
'性別': '女',
'住所':'東京都世田谷区...',
'電話番号':'080-8765-4321'
}
}
print(meibo['加藤貴之'])
print(meibo['鈴木花子']['住所'])
複雑なデータ②
recipe = {
'酢鶏':['鶏肉', '卵', '大根'],
'筑前煮':['人参', '鶏肉', '蓮根', '大根', '絹さや'],
'チキンステーキ':['鶏肉','大根','大葉']
}
print(recipe['筑前煮'])
print(recipe['チキンステーキ'][0])
複雑なデータ③
quiz = [
['問題1', ['選択肢1a', '選択肢1b', '選択肢1c', '選択肢1d'], '答1'],
['問題2', ['選択肢2a', '選択肢2b', '選択肢2c', '選択肢2d'], '答2'],
['問題3', ['選択肢3a', '選択肢3b', '選択肢3c', '選択肢3d'], '答3'],
]
print(quiz[1][2])
print(quiz[0][1])
print(quiz[2][1][3])
Frameを使ったきれいな配置
import os
import tkinter as tk
mondai = '朝来市佐嚢の出身で第百銀行の頭取を務めた人物は誰でしょう。'
sentakushi = ['北垣国道','原六郎','桜井勉','加藤弘之']
def kotaeawase():
...
root = tk.Tk()
root.geometry("400x300") #ウィンドウサイズ
tk.Label(root,text = mondai).pack() #問題文の表示
kaito = tk.IntVar() #何番の選択肢がチェックされているか
kaito.set(0) #初期値は0番をチェックする
frame1 = tk.Frame(root)
frame1.pack()
for i in range(len(sentakushi)):
tk.Radiobutton(frame1, text = sentakushi[i],variable = kaito, value = i).pack(side='left')
tk.Button(root,text = "OK", command = kotaeawase).pack() #ボタンの表示
root.mainloop()
画面遷移
#複数の画面を移動する
import os
import tkinter as tk
quiz = [
['問題文1', '選択肢1a', '選択肢1b', '選択肢1c', '選択肢1d', 2],
['問題文2', '選択肢2a', '選択肢2b', '選択肢2c', '選択肢2d', 3],
['問題文3', '選択肢3a', '選択肢3b', '選択肢3c', '選択肢3d', 1],
]
sentakusu = 4 #選択肢の数
ima = 0 #今何番目の問題をしているか
root = tk.Tk()
root.geometry("400x300") #ウィンドウサイズ
kaito = tk.IntVar() #何番の選択肢がチェックされているか
kaito.set(1) #初期値は0番をチェックする
def nextQuiz(): #次の問題に移る
global ima
ima += 1
messageLabel.pack_forget() #Labelを消す
nextButton.pack_forget() #Buttonを消す
showQuiz(quiz[ima])
def kotaeawase(): #答え合わせ
message = ''
seikai = quiz[ima][5]
if kaito.get() == quiz[ima][5]:
message = '正解!'
else:
message = '間違い! 正解は ' + quiz[ima][seikai] + ' です。'
messageLabel['text'] = message
messageLabel.pack()
nextButton.pack()
def showQuiz(q): #問題を表示する
mondaiLabel['text'] = q[0]
for i in range(sentakusu):
sentakuButtons[i]['text'] = q[i+1]
sentakuButtons[i]['variable'] = kaito
sentakuButtons[i]['value'] = i+1
#部品の配置
mondaiLabel = tk.Label(root)
mondaiLabel.pack()
sentakushiFrame = tk.Frame(root)
sentakushiFrame.pack()
sentakuButtons = [0]*4
for i in range(sentakusu):
sentakuButtons[i] = tk.Radiobutton(sentakushiFrame)
sentakuButtons[i].pack(side = 'left')
okButton = tk.Button(root,text = "OK", command = kotaeawase)
okButton.pack()
messageLabel = tk.Label(root, text = '')
nextButton = tk.Button(root, text='次へ', command = nextQuiz)
showQuiz(quiz[ima])
root.mainloop()
チラシのアンケートのお願い
コメント
最新を表示する
NG表示方式
NGID一覧