【Python入門】初心者でもできる!カレンダーアプリの作り方を解説
Pythonを勉強し始めたけど、「実際に何かアプリを作ってみたい」と思っていませんか?
そんなあなたにおすすめなのが、カレンダーアプリの作成です。
この記事では、Python入門者でも作れる、シンプルなカレンダーアプリの作り方をわかりやすく解説します。
画面付きのGUIアプリなので、完成後に「形がある達成感」も味わえます。プログラミング学習はアウトプット7、インプット3の割合くらいでちょうどいいです。※GUI=グラフィックユーザーインターフェース
1. カレンダーアプリで学べること
このカレンダーアプリ制作を通じて、次のようなPythonの知識が身につきます。
- ✅ 標準ライブラリ(calendar、datetime)の使い方
- ✅ GUI開発(tkinter)の基本
- ✅ 関数定義やイベント処理
- ✅ 入力値の受け取りと表示の連動
Pythonの「実用的な使い方」を体験するのにぴったりな入門プロジェクトです。知識として覚えるだけでなく、実際に体験することで学習効率が上がります。
2. 使用するライブラリ
今回使用するライブラリはすべてPythonに標準搭載されており、インストール不要です。
- calendar: カレンダー生成用
- datetime: 現在の日付取得
- tkinter: 画面(GUI)作成
それでは、ステップごとに作っていきましょう!
3. カレンダーアプリの完成イメージ
- 📝 ユーザーが「年」と「月」を入力
- 📅 カレンダーを画面上に表示
- 👆 表示ボタンで切り替え可能
最終的には、入力 → 表示 → 切り替え ができるGUIアプリになります。
4. 基本構成の説明
Pythonのカレンダーアプリは、次の4つのステップで構成されています:
- ライブラリの読み込み
- カレンダー表示用の関数を作る
- tkinterで入力画面を作成
- ボタンを押したらカレンダーを表示
5. ステップ①:ライブラリをインポート
import tkinter as tk
import calendar
from datetime import datetime
これだけで準備OK!tkinterはGUI画面、calendarはカレンダーの中身、datetimeは現在日付の取得に使います。
6. ステップ②:カレンダー表示関数を定義
def get_calendar(year, month): #関数の定義
try:
year = int(year) #変数へ代入
month = int(month)
cal = calendar.TextCalendar(firstweekday=6)
return cal.formatmonth(year, month)
except:
return "エラー:年と月を正しく入力してください"
TextCalendar
:テキスト形式のカレンダーを生成firstweekday=6
:週の始まりを日曜に設定
7. ステップ③:tkinterで画面を作成
root = tk.Tk()
root.title("Pythonカレンダーアプリ")
root.geometry("400x400")
ここで画面ウィンドウの基本設定をしています。
次に、入力欄とラベルを追加します。
# 年入力欄
year_label = tk.Label(root, text="年:")
year_label.pack()
year_entry = tk.Entry(root)
year_entry.pack()
# 月入力欄
month_label = tk.Label(root, text="月:")
month_label.pack()
month_entry = tk.Entry(root)
month_entry.pack()
8. ステップ④:表示ボタンと出力エリアを作成
# カレンダー出力エリア
calendar_display = tk.Text(root, height=10, width=40)
calendar_display.pack()
# ボタン押下時の処理
def show_calendar():
y = year_entry.get()
m = month_entry.get()
result = get_calendar(y, m)
calendar_display.delete("1.0", tk.END)
calendar_display.insert(tk.END, result)
# 表示ボタン
show_btn = tk.Button(root, text="カレンダー表示", command=show_calendar)
show_btn.pack()
このshow_calendar()
関数が、ユーザーの入力をもとにカレンダーを表示する処理です。
9. ステップ⑤:mainloopでアプリを起動
root.mainloop()
これで、Pythonのウィンドウアプリが起動し続け、入力と表示ができるようになります。
10. 完成したコード全体
import tkinter as tk
import calendar
from datetime import datetime
def get_calendar(year, month):
try:
year = int(year)
month = int(month)
cal = calendar.TextCalendar(firstweekday=6)
return cal.formatmonth(year, month)
except:
return "エラー:年と月を正しく入力してください"
root = tk.Tk()
root.title("Pythonカレンダーアプリ")
root.geometry("400x400")
year_label = tk.Label(root, text="年:")
year_label.pack()
year_entry = tk.Entry(root)
year_entry.pack()
month_label = tk.Label(root, text="月:")
month_label.pack()
month_entry = tk.Entry(root)
month_entry.pack()
calendar_display = tk.Text(root, height=10, width=40)
calendar_display.pack()
def show_calendar():
y = year_entry.get()
m = month_entry.get()
result = get_calendar(y, m)
calendar_display.delete("1.0", tk.END)
calendar_display.insert(tk.END, result)
show_btn = tk.Button(root, text="カレンダー表示", command=show_calendar)
show_btn.pack()
root.mainloop()
これでシンプルなカレンダーアプリの完成です。
11. 応用編:拡張してみよう
もっとレベルアップしたい方は、以下のような機能追加に挑戦してみましょう。
- ✅ 「前の月」「次の月」ボタンを追加
- ✅ 現在日付を自動入力
- ✅ イベントを登録・保存する(CSVやJSON)
- ✅ Webアプリ版にして公開(Flaskなど)
まとめ|Python入門にカレンダーアプリは最適!
Pythonの入門としてカレンダーアプリを作るのは、非常におすすめです。
- ✅ 実用性がある
- ✅ 標準ライブラリだけでできる
- ✅ GUIやイベント処理を体験できる
まずは今回のコードを写経して動かしてみましょう。そして少しずつアレンジして、自分だけのアプリに仕上げていくのが上達のコツです。実際にコードを書いていくことで理解を深めていきましょう!
「Python 入門」というキーワードでこの記事を読んでくださったあなたが、これからも楽しんで学習を続けられるよう応援しています!
コメント