Pythonでプログラミング|初心者でも作れる簡単アプリ5選

※本ページはアフィリエイト広告が含まれています

Python
スポンサーリンク

Pythonの勉強をしてるけど、そろそろ何か作ってみたいな。

でも何を作ったらいいか迷ってしまう。

プログラミングを学び始めると、最初は何を作ればいいのか迷うことが多いです。そんな時に、具体的なプロジェクトを持つことは学習を加速させ、モチベーションを維持するための良い方法です。この記事では、初心者でも簡単に作れるアプリを5つ紹介し、それぞれの作り方やコードの書き方、使い方、表示の仕方を詳しく説明します。

この記事でわかること
  • 簡単なアプリが作れるようになる
  • Pythonの基本的なコードが理解できる
  • さらに難しいアプリが作りたくなる

■本のご紹介

Python1年生 第2版 体験してわかる!会話でまなべる!プログラミングのしくみ

この本は筆者が初めてPythonを勉強するのに使用しました。

Pythonの基礎から簡単なアプリ、そして人工知能まで作れてしまう楽しい一冊です。キャラクターの楽しい会話形式が親しみがあり学習もはかどりました。

Pythonが初めての方にはおすすめです。

プログラミングスクールも気になる方は「【2024年最新版】プログラミングスクールPython講座10選を徹底比較」でPython講座を提供する優秀スクールの比較と選び方をご紹介しております。ぜひチェックしてください。

スポンサーリンク

Pythonを使って初心者でも作れる簡単アプリ

Pythonで作れるアプリをご紹介します。全体のコードと説明がありますので、コピー&ペーストをして動作を確認したり、一からエディタにコードの記述をして説明と見比べたりと楽しんで取り組んでください。

  1. Hello Worldアプリ
  2. 簡単な計算機アプリ
  3. 天気情報取得アプリ
  4. シンプルなメモアプリ
  5. TODOアプリ

記事内ではVisual Studio Code(VS Code)のエディタを使用しています。下記を参考にアプリの実行環境を作ってください。

VS Codeでの実行方法

Visual Studio Code(VS Code)をインストールする

Python拡張機能をインストールする

  • VS Codeを開き、左のサイドバーにある拡張機能(Extensions)アイコンをクリックします。
  • 検索バーに「Python」と入力し、Pythonに関連した拡張機能をインストールします。

新しいファイルを作成する

  • VS Codeを開き、「ファイル」メニューから「新しいファイル」を選択します。
  • 上記のコードをエディタに記述します。(コピー&ペーストでも構いません)

ファイルを保存する

「ファイル」メニューから「名前を付けて保存」を選択し「(任意のファイル名).py」という名前で保存します。(※ファイル名の後ろには「.py」を忘れないようにしてください)

Pythonファイルを実行する

VS Codeのショートカットキーで実行します。

  • F5
  • Windows: Ctrl+Shift+D
  • Mac: ⇧⌘D

ターミナルに結果が表示されます。

1.Hello Worldアプリ

プログラミングをやるなら知っておきたい「Hello, World!」のプログラムです。

コードの書き方

# "Hello, World!"と表示する
print("Hello, World!")

コードの説明

  • print("Hello, World!")print関数は、指定された文字列(文字列とは” “で囲まれたものです。ここでは"Hello, World!")をコンソールに表示します。この場合、「Hello, World!」と表示されます。

結果の確認

プログラムを実行すると、ターミナルに「Hello, World!」と表示されます。

2.簡単な計算機アプリ

計算機プログラムのコードです。計算は四則演算でできますが、ここでは数字を入力すると計算されるプログラムを作っていきます。

コードの書き方

# 入力を受け取る
num1 = input("1つ目の数を入力してください: ")
num2 = input("2つ目の数を入力してください: ")

# 入力を数値に変換する
num1 = float(num1)
num2 = float(num2)

# 足し算を行う
result = num1 + num2

# 結果を表示する
print("結果は:", result)

コードの説明

  • num1 = input("1つ目の数を入力してください: ")input関数を使ってユーザーから入力を受け取ります。入力されたデータは文字列として扱われます。
  • num1 = float(num1)float関数を使って文字列を浮動小数点数に変換します。
  • result = num1 + num2num1num2を足し算し、その結果をresultに格納します。
  • print("結果は:", result)print関数を使って計算結果を表示します。

結果の確認

プログラムを実行すると、数値の入力を求められます。2つの数値を入力すると、その合計が表示されます。

3. 天気情報取得アプリ

コードの書き方

import requests

# APIキーを設定
api_key = "あなたのAPIキーをここに入力"

# ユーザーに都市名を入力させる
city = input("都市名を入力してください: ")

# APIリクエストURLを構築
base_url = f"http://api.openweathermap.org/data/2.5/weather?q={city}&appid={api_key}&units=metric"

# APIリクエストを送信
response = requests.get(base_url)

# 結果をJSON形式で取得
data = response.json()

# 天気情報を表示
if data["cod"] == "404":
    print("都市が見つかりませんでした")
else:
    main = data["main"]
    weather = data["weather"][0]
    print(f"都市: {city}")
    print(f"天気: {weather['description']}")
    print(f"気温: {main['temp']}°C")
    print(f"湿度: {main['humidity']}%")

コードの説明

  • import requestsrequestsモジュールは、HTTPリクエストを簡単に送信できるライブラリです。天気情報のAPIにアクセスするために使用します。
  • api_key = "あなたのAPIキーをここに入力":OpenWeatherMapから取得したAPIキーを設定します。
  • city = input("都市名を入力してください: "):ユーザーに都市名を入力させます。
  • base_url = f"http://api.openweathermap.org/data/2.5/weather?q={city}&appid={api_key}&units=metric":指定された都市の天気情報を取得するためのAPIリクエストURLを構築します。
  • response = requests.get(base_url)指定したURLにHTTP GETリクエストを送信します。
  • data = response.json():APIからのレスポンスをJSON形式で取得します。
  • if data["cod"] == "404"::都市が見つからない場合のエラーハンドリングです。
  • main = data["main"]:天気の主要情報(気温や湿度など)を取得します。
  • weather = data["weather"][0]:天気の詳細情報を取得します。
  • print関数:取得した天気情報をコンソールに表示します。
APIキーの取得について

天気情報を取得するにはAPIキーが必要になります。APIを使用するにはアカウントとAPIキーが必要です。

APIキーの保護が必要なため、キーは公開しないようにしてください。サーバーサイドでリクエストを処理するか、隠す方法を使用してください。今回は筆者が取得したものでデモを作成しているので、自身で試すときはキーを取得し指定の場所に入力してください。

アカウント作成からAPIキー取得までの手順を詳しく説明していきましょう。

  1. アカウント登録
  • OpenWeatherMapのウェブサイト(https://openweathermap.org/)にアクセスします。
  • 右上の “Sign In” ボタンをクリックし、続いて “Create an Account” を選択します。
  • 必要な情報(ユーザー名、メールアドレス、パスワード)を入力してアカウントを作成します。
  1. メール確認:
  • 登録したメールアドレスに確認メールが送られます。
  • メール内のリンクをクリックしてアカウントを有効化します。
  1. APIキーの取得
  • OpenWeatherMapにログインします。
  • 画面上部の “API keys” タブをクリックします。
  • デフォルトのAPIキーが表示されます。これをコピーして使用できます。
  • 必要に応じて、”Create key” ボタンをクリックし、キー名を入力して新しいAPIキーを生成できます。

※(作成したアカウントに登録したメールアドレスにメールが送られてきてその中にもAPIキーが表示されています)

  1. APIキーの有効化
  • 新しく作成したAPIキーは、有効になるまでに数時間かかる場合があります。
  • 無料プランでは、1分あたり60回のAPIコールが可能です。

APIキーを取得したら、先ほど提供したPythonスクリプトの api_key 変数にそのキーを設定して使用できます。

api_key = "ここに取得したAPIキーを入力"

結果の確認

プログラムを実行すると、都市の名前を求められます。例えば都市名「Tokyo」と入力すると天気予報が表示されます。

4.シンプルなメモアプリ

コードの書き方

シンプルなメモアプリのコードです。

# メモを格納するリスト
notes = []

# メニューを表示する関数
def show_menu():
    print("1. メモを追加")
    print("2. メモを表示")
    print("3. メモを削除")
    print("4. 終了")

# メモを追加する関数
def add_note():
    note = input("追加するメモを入力してください: ")
    notes.append(note)
    print("メモが追加されました")

# メモを表示する関数
def show_notes():
    if len(notes) == 0:
        print("メモがありません")
    else:
        for i, note in enumerate(notes):
            print(f"{i+1}. {note}")

# メモを削除する関数
def delete_note():
    show_notes()
    note_num = int(input("削除するメモの番号を入力してください: "))
    if 0 < note_num <= len(notes):
        notes.pop(note_num - 1)
        print("メモが削除されました")
    else:
        print("無効な番号です")

# メインプログラム
while True:
    show_menu()
    choice = input("選択してください: ")

    if choice == "1":
        add_note()
    elif choice == "2":
        show_notes()
    elif choice == "3":
        delete_note()
    elif choice == "4":
        break
    else:
        print("無効な選択です")

コードの説明

このメモアプリのコードについて詳しく説明します。

1. メモを格納するリスト

notes = []

ここでは、メモを格納するためのリスト notes を定義しています。このリストにメモを追加・削除します。

2. メニューを表示する関数

def show_menu():
    print("1. メモを追加")
    print("2. メモを表示")
    print("3. メモを削除")
    print("4. 終了")

show_menu 関数はユーザーに操作メニューを表示します。メニューには以下の選択肢があります:

  1. メモを追加
  2. メモを表示
  3. メモを削除
  4. 終了

3. メモを追加する関数

def add_note():
    note = input("追加するメモを入力してください: ")
    notes.append(note)
    print("メモが追加されました")

add_note 関数は新しいメモを追加します。まず、ユーザーにメモの内容を入力させ、その内容を note 変数に格納します。次に、そのメモを notes リストに追加し、「メモが追加されました」と表示します。

4. メモを表示する関数

def show_notes():
    if len(notes) == 0:
        print("メモがありません")
    else:
        for i, note in enumerate(notes):
            print(f"{i+1}. {note}")

show_notes 関数は現在のメモを表示します。まず、メモが存在しない場合、「メモがありません」と表示します。メモが存在する場合は、リスト内の各メモを番号付きで表示します。enumerate 関数を使って、インデックスとメモの内容を取得し、1から始まる番号を付けて表示します。

5. メモを削除する関数

def delete_note():
    show_notes()
    note_num = int(input("削除するメモの番号を入力してください: "))
    if 0 < note_num <= len(notes):
        notes.pop(note_num - 1)
        print("メモが削除されました")
    else:
        print("無効な番号です")

delete_note 関数は指定したメモを削除します。まず、show_notes 関数を呼び出して現在のメモを表示します。次に、削除したいメモの番号をユーザーに入力させ、その番号が有効かどうかを確認します。番号が有効であれば、対応するメモをリストから削除し、「メモが削除されました」と表示します。番号が無効であれば、「無効な番号です」と表示します。

6. メインプログラム

while True:
    show_menu()
    choice = input("選択してください: ")

    if choice == "1":
        add_note()
    elif choice == "2":
        show_notes()
    elif choice == "3":
        delete_note()
    elif choice == "4":
        break
    else:
        print("無効な選択です")

メインプログラムは無限ループ (while True) を使ってメニューを繰り返し表示し、ユーザーの選択を待ちます。ユーザーの入力に応じて、対応する関数 (add_noteshow_notesdelete_note) を呼び出します。choice が「4」の場合、ループを終了してプログラムを終了します。無効な選択肢が入力された場合は「無効な選択です」と表示します。

結果の確認

プログラムを実行すると、メニューが表示されます。各オプションを選択してメモを管理します。

5.TODOリストアプリ

TODOリストアプリは、初心者が学んだ基本的なデータ構造や制御構造を活用しながら、より高度な機能を追加して中級レベルにチャレンジです。

Pythonと簡単なGUIライブラリであるTkinterを使ったTODOリストアプリのサンプルコードを説明します。

GUI(Graphical User Interface)を実装するために、PythonのTkinterという標準ライブラリを使用します。TkinterはPythonのGUIツールキットであり、比較的簡単に使うことができます。

コードの書き方

import tkinter as tk
from tkinter import messagebox

# メインアプリクラス
class ToDoApp:
    def __init__(self, root):
        self.root = root
        self.root.title("TO DO リストアプリ")

        self.tasks = []

        self.task_input = tk.Entry(root, width=50)
        self.task_input.pack(pady=10)

        self.add_button = tk.Button(root, text="タスクを追加", command=self.add_task)
        self.add_button.pack(pady=5)

        self.task_listbox = tk.Listbox(root, width=50, height=10)
        self.task_listbox.pack(pady=10)

        self.delete_button = tk.Button(root, text="選択したタスクを削除", command=self.delete_task)
        self.delete_button.pack(pady=5)

    def add_task(self):
        task = self.task_input.get()
        if task != "":
            self.tasks.append(task)
            self.update_task_list()
            self.task_input.delete(0, tk.END)
        else:
            messagebox.showwarning("警告", "タスクを入力してください")

    def delete_task(self):
        try:
            selected_task_index = self.task_listbox.curselection()[0]
            del self.tasks[selected_task_index]
            self.update_task_list()
        except IndexError:
            messagebox.showwarning("警告", "削除するタスクを選択してください")

    def update_task_list(self):
        self.task_listbox.delete(0, tk.END)
        for task in self.tasks:
            self.task_listbox.insert(tk.END, task)

if __name__ == "__main__":
    root = tk.Tk()
    app = ToDoApp(root)
    root.mainloop()

コードの説明

各部分のコードの説明を詳しく書いていきます。

import tkinter as tk
from tkinter import messagebox
  • import tkinter as tk:Pythonの標準GUIライブラリであるTkinterをtkという名前でインポートしています。
  • from tkinter import messagebox:メッセージボックス(警告やエラーメッセージを表示するためのダイアログ)を使用するためにインポートしています。
# メインアプリクラス
class ToDoApp:
    def __init__(self, root):
        self.root = root
        self.root.title("TO DO リストアプリ")
  • class ToDoApp:ToDoAppというクラスを定義しています。このクラスがアプリケーション全体のロジックを持ちます。
  • def __init__(self, root)::クラスの初期化メソッド(コンストラクタ)です。rootはTkinterのメインウィンドウです。
  • self.root = root:渡されたroot(メインウィンドウ)をクラスのインスタンス変数に保存します。
  • self.root.title("TO DO リストアプリ"):ウィンドウのタイトルを「TODOリストアプリ」に設定します。
self.tasks = []
  • self.tasks = []:タスクを保存するためのリストを初期化します。
self.task_input = tk.Entry(root, width=50)
        self.task_input.pack(pady=10)
  • self.task_input = tk.Entry(root, width=50):タスクを入力するためのエントリウィジェットを作成し、幅を50に設定します。
  • self.task_input.pack(pady=10):エントリウィジェットをウィンドウに配置し、上下に10ピクセルの余白を追加します。
self.add_button = tk.Button(root, text="タスクを追加", command=self.add_task)
        self.add_button.pack(pady=5)
  • self.add_button = tk.Button(root, text="タスクを追加", command=self.add_task):タスクを追加するためのボタンを作成します。ボタンがクリックされたときにself.add_taskメソッドを呼び出します。
  • self.add_button.pack(pady=5):ボタンをウィンドウに配置し、上下に5ピクセルの余白を追加します。
self.task_listbox = tk.Listbox(root, width=50, height=10)
        self.task_listbox.pack(pady=10)
  • self.task_listbox = tk.Listbox(root, width=50, height=10):タスクの一覧を表示するためのリストボックスを作成します。幅を50、高さを10に設定します。
  • self.task_listbox.pack(pady=10):リストボックスをウィンドウに配置し、上下に10ピクセルの余白を追加します。
self.delete_button = tk.Button(root, text="選択したタスクを削除", command=self.delete_task)
        self.delete_button.pack(pady=5)
  • self.delete_button = tk.Button(root, text="選択したタスクを削除", command=self.delete_task):選択したタスクを削除するためのボタンを作成します。ボタンがクリックされたときにself.delete_taskメソッドを呼び出します。
  • self.delete_button.pack(pady=5):ボタンをウィンドウに配置し、上下に5ピクセルの余白を追加します。
def add_task(self):
        task = self.task_input.get()
        if task != "":
            self.tasks.append(task)
            self.update_task_list()
            self.task_input.delete(0, tk.END)
        else:
            messagebox.showwarning("警告", "タスクを入力してください")
  • def add_task(self)::タスクを追加するためのメソッドです。
  • task = self.task_input.get():エントリウィジェットから入力されたテキストを取得します。
  • if task != ""::入力が空でないかチェックします。
  • self.tasks.append(task):タスクをリストに追加します。
  • self.update_task_list():タスクリストを更新するためのメソッドを呼び出します。
  • self.task_input.delete(0, tk.END):エントリウィジェットをクリアします。
  • else: messagebox.showwarning("警告", "タスクを入力してください"):入力が空の場合、警告メッセージを表示します。
def delete_task(self):
        try:
            selected_task_index = self.task_listbox.curselection()[0]
            del self.tasks[selected_task_index]
            self.update_task_list()
        except IndexError:
            messagebox.showwarning("警告", "削除するタスクを選択してください")
  • def delete_task(self)::選択したタスクを削除するためのメソッドです。
  • selected_task_index = self.task_listbox.curselection()[0]:リストボックスで選択されたタスクのインデックスを取得します。
  • del self.tasks[selected_task_index]:リストから選択されたタスクを削除します。
  • self.update_task_list():タスクリストを更新するためのメソッドを呼び出します。
  • except IndexError: messagebox.showwarning("警告", "削除するタスクを選択してください"):選択されたタスクがない場合、警告メッセージを表示します。
def update_task_list(self):
        self.task_listbox.delete(0, tk.END)
        for task in self.tasks:
            self.task_listbox.insert(tk.END, task)
  • def update_task_list(self)::タスクリストを更新するためのメソッドです。
  • self.task_listbox.delete(0, tk.END):リストボックスをクリアします。
  • for task in self.tasks::リスト内の各タスクに対してループを実行します。
  • self.task_listbox.insert(tk.END, task):タスクをリストボックスに追加します。
if __name__ == "__main__":
    root = tk.Tk()
    app = ToDoApp(root)
    root.mainloop()
  • if __name__ == "__main__"::このスクリプトが直接実行された場合にのみ、以下のコードを実行します。
  • root = tk.Tk():Tkinterのメインウィンドウを作成します。
  • app = ToDoApp(root)ToDoAppクラスのインスタンスを作成し、メインウィンドウを渡します。
  • root.mainloop():Tkinterのイベントループを開始します。これにより、ウィンドウが表示され、ユーザーの操作を受け付けます。

■本のご紹介

プログラミング入門講座――基本と思考法と重要事項がきちんと学べる授業

この本はプログラミングにおける必要性の価値を教えてくれる一冊です。

オンラインサービスで学習ができるサイトも多く紹介されており、子供に親しみやすいScratchもあります。やってみるとコードではなくパズルのように組み立てていくので視覚的にも分かりやすいです。

しかし子供向けだからと言っても本格的なプログラムを学ぶことができます。プログラムコードに少し苦手意識がある方はこちらの本からチャレンジしてみてください。楽しいですよ。

スポンサーリンク

Pythonでプログラミング|初心者でも作れる簡単アプリ5選 まとめ

初心者でも簡単に作成できる5つのアプリを紹介しました。各アプリは、プログラミングの基礎を学ぶのに最適な内容になっています。

  1. Hello Worldアプリ:プログラミングの最初の一歩として、コンソールにメッセージを表示する方法を学びます。
  2. 簡単な計算機アプリ:ユーザー入力と基本的な算術演算を学びます。
  3. 天気情報取得アプリ:APIの利用方法と外部データの取得方法を学びます。
  4. メモアプリ:データの追加、表示、削除を学びます。
  5. TO DOアプリ:基本的なデータ操作とユーザーインタラクションを学びます。

これらのアプリを作成することで、プログラミングの基礎をしっかりと身に付けることができます。次のステップとして、これらのアプリをさらに改良したり、新しい機能を追加したりして、自分のスキルを高めていきましょう。継続的に学び、実践することで、力を身に付けることができます。色々と作ってみてプログラミングを楽しみましょう!

アプリを作ってみて、Pythonの学習をスクールでより深めたいと考えた方はこちらで「【2024年最新版】プログラミングスクールPython講座10選を徹底比較」でPython講座を提供する優秀スクールの比較と選び方をご紹介しております。ぜひチェックしてください。

※本ページはプロモーションが含まれています。

Python
スポンサーリンク
meguをフォローする
WEBらぼ