Pythonの基礎はわかってきたけど応用に何を作ったらいいかな?
Pythonを独学で始めた方は、そろそろ何か作ってみたいなと思い始めるのではないでしょうか。
しかし何から書いていいか迷ってしまいますよね。
Pythonでは様々な事ができますが、今回はシンプルなおみくじの作り方をご紹介します。
ひとつ作るとその楽しさがわかり、また次に作りたくなるものです。
ぜひその楽しさをこの記事から感じてくださいね。
- Pythonを使っておみくじの実装
- コードの書き方
おみくじプログラム全体
説明の前にとりあえず全体をコピペや見ながらエディタに書き写して動きを確認しても良いです。
参考でのエディタはVS CODEを使用しています。実行結果を表示させるにはエディタ上を右クリックRun Codeで表示します。
使用している背景画像は任意です。コード内の(file=”omikuji.png“)の画像は用意したものをフォルダに差し替えてください。
画像を入れない場合は、「#画像指定とサイズ作成」、「#キャンバスに画像を表示」のコードを削除して実装してください。
# tkinterを使う準備
import tkinter
import tkinter as tk
import random
# ランダムに文字を表示と文字サイズ・表示位置
def dispLabel():
omikuji = ['大吉:最高!', '吉:良し', '中吉:平常', '小吉:努力', '末吉:やや悪し', '凶:悪し'
]
lbl.configure(font=("", 50), bg='#ffffff', text=random.choice(omikuji))
lbl.place(x=90, y=130)
# ウィンドウ作成とタイトル・画面サイズ固定
root = tkinter.Tk()
root.geometry("500x500")
root.title("おみくじ")
root.resizable(False, False)
# キャンバス作成とキャンバス位置
canvas = tkinter.Canvas(root, height=500, width=500)
canvas.place(x=0, y=0)
# 画像指定とサイズ作成
img = tkinter.PhotoImage(file="omikuji.png", width=500, height=500)
# キャンバスに画像を表示
canvas.create_image(0, 0, image=img, anchor=tkinter.NW)
# リセットボタンの位置とサイズ
btn = tk.Button(root, text="終了", width=6, height=2, command=lambda:root.destroy())
btn.place(x = 200, y = 450)
#押すボタンの位置とサイズ
lbl = tk.Label(text="おみくじ", width=10, height=3)
btn = tk.Button(root, text="押す", width=10, height=3, command = dispLabel)
btn.place(x = 150, y = 300)
lbl.pack()
btn.pack()
root.mainloop()
実装の解説をします
tkinterのGUIツールキットでウィンドウ上に操作画面を作ります。そこにボタンやラベル背景画像を設置します。
ランダムに文字を表示と文字サイズ・表示位置
randomモジュールをインポートする。
omikujiにリストでくじの内容を書く(お好みのものに変えても良いです)
lbl.configureでおみくじを表示するラベルの文字サイズ・背景色、omikujiのリストの内容がランダムに選ばれ表示される。
lbl.placeでomikujiが表示される位置の設定。
# tkinterを使う準備
import tkinter
import tkinter as tk
import random
# ランダムに文字を表示と文字サイズ・表示位置
def dispLabel():
omikuji = ['大吉:最高!', '吉:良し', '中吉:平常', '小吉:努力', '末吉:やや悪し', '凶:悪し'
]
lbl.configure(font=("", 50), bg='#ffffff', text=random.choice(omikuji))
lbl.place(x=90, y=130)
ウィンドウ作成とタイトル・画面サイズ固定
root.geometry(“500×500”)でウィンドウの作成を設定。
サイズを設定しタイトルをつける。
root.resizable(False, False)でウィンドウが設定する背景画像サイズより大きくならないために固定する。
# ウィンドウ作成とタイトル・画面サイズ固定
root = tkinter.Tk()
root.geometry("500x500")
root.title("おみくじ")
root.resizable(False, False)
キャンバスと背景画像の設定
キャンバス作成とキャンバス位置は、tkinter.Canvasを作成しサイズを入力する(今回は画像サイズに合わせました)
画像の設定して、キャンバスに画像を設定する。
# キャンバス作成とキャンバス位置
canvas = 押すと(root, height=500, width=500)
canvas.place(x=0, y=0)
# 画像指定とサイズ作成
img = tkinter.PhotoImage(file="omikuji.png", width=500, height=500)
# キャンバスに画像を表示
canvas.create_image(0, 0, image=img, anchor=tkinter.NW)
押すと終了のボタン設定
終了ボタンはテキストに”終了”・サイズ・リセットするを設定する。
押すボタンはおみくじのラベルとテキストに”押す”・サイズ・omikijiを取得
root.mainloop()で繰り返す。
# 終了ボタンの位置とサイズ
btn = tk.Button(root, text="終了", width=6, height=2, command=lambda:root.destroy())
btn.place(x = 200, y = 450)
#押すボタンの位置とサイズ
lbl = tk.Label(text="おみくじ", width=10, height=3)
btn = tk.Button(root, text="押す", width=10, height=3, command = dispLabel)
btn.place(x = 150, y = 300)
lbl.pack()
btn.pack()
root.mainloop()
まとめ
今回はPythonでおみくじを作りました。
randomモジュールを使ったランダムな値でおみくじを表示させました。
if,elif,elseを使って条件分岐の書き方でも作成できます。
参考
こちらも試して作成してみてください。
ひとつのプログラムが作れるようになると次にも意欲が出るものです。
ぜひいろいろチャレンジしましょう。