【Python】初心者でもおみくじプログラムを作ってみよう!【見本あり】

※本ページはプロモーションが含まれています。
※本記事に掲載している広告収益の一部はWebらぼに還元されています。

プログラミング
悩み子さん
悩み子さん

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を使って条件分岐の書き方でも作成できます。

参考

【Python入門】if文の使い方!「もしも〜なら」の条件分岐!
Pythonでif文を使って、条件分岐をする方法について書いています。最初にif文について簡単に解説して、その後にelse文・elif文について解説しています。ifと一緒に使用するelifやelseについても一緒に解説しました。載せて

こちらも試して作成してみてください。

ひとつのプログラムが作れるようになると次にも意欲が出るものです。

ぜひいろいろチャレンジしましょう。

※本ページはプロモーションが含まれています。
※本記事に掲載している広告収益の一部はWebらぼに還元されています。

プログラミング
meguをフォローする
WEBらぼ