Python | ChatGPTを利用したmobile application用shopping listの構築方法

2023年10月1日

ChatGPTとはChat Generative Pre-trained Transformerの略であり,OpenAI社が開発し,2022年11月に公開した人工知能チャットボットである.

今回,ChatGPTを利用してmobile application用のshopping listを作成したので,そのコードを以下に記す.

実施環境

Windows 11
Python 3.11
Visual Studio Code (VS Code) 1.82.2

準備

フォルダを作成し,VS Codeを開く.三本線の赤枠をクリックし,"File"を選択する.その後,"Open Folder"をクリックし,作成したフォルダを選択する.

以下のように,作成したフォルダが表示される.

以下のように,フォルダの下の空白部の赤枠を右クリックするとメニューが開くので,"New File"をクリックし,名前(xxx.py)を付ける.

今回は"sample.py"という名前にしたので,以下のようにファイルが作成される.

“Shift"+"CTL"+@ボタンを同時にクリックすると,ターミナルが開く.この"sample.py"にコードを書いていく.

コード内容

ChatGPTで何回か質問した結果,kivyを利用したshopping list applicationのコードとtkinterを利用したshopping list applicationのコードが出力されたので,以下に記す.

Kivyを利用したshopping list application

ChatGPTで出力されたコードは以下になる.

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.textinput import TextInput
from kivy.uix.button import Button
from kivy.uix.label import Label
from kivy.clock import Clock

class ShoppingListApp(App):
    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        self.shopping_list = []

    def build(self):
        layout = BoxLayout(orientation="vertical")

        self.text_input = TextInput(hint_text="Enter an item", multiline=False)
        self.text_input.bind(on_text_validate=self.add_item)  # Bind Enter keypress event

        add_button = Button(text="Add Item", size_hint=(0.5, None), height=40)
        add_button.bind(on_press=self.add_item)

        clear_button = Button(text="Clear List", size_hint=(0.5, None), height=40)
        clear_button.bind(on_press=self.clear_list)

        self.shopping_list_label = Label(text="Shopping List:")

        layout.add_widget(self.shopping_list_label)
        layout.add_widget(self.text_input)
        layout.add_widget(add_button)
        layout.add_widget(clear_button)

        return layout

    def add_item(self, instance):
        item = self.text_input.text.strip()
        if item:
            self.shopping_list.append(item)
            self.update_shopping_list()
            self.text_input.text = ""  # Clear the text input field after adding
            Clock.schedule_once(self.focus_text_input)  # Schedule focus after a slight delay

    def focus_text_input(self, dt):
        self.text_input.focus = True  # Set focus back to the text input field

    def clear_list(self, instance):
        self.shopping_list = []  # Clear the shopping list
        self.update_shopping_list()

    def update_shopping_list(self):
        self.shopping_list_label.text = "Shopping List:\n" + "\n".join(self.shopping_list)

if __name__ == '__main__':
    ShoppingListApp().run()

“sample.py"に上記コードを貼り付け,セーブをする.その後,赤枠の矢印(Run Python File)をクリックする.

以下のように,Shopping listが開く.

Tkinterを利用したshopping list application

ChatGPTで出力されたコードは以下になる.

import tkinter as tk
from tkinter import messagebox

class ShoppingListApp:
    def __init__(self, root):
        self.root = root
        self.root.title("Shopping List App")

        # Initialize an empty shopping list
        self.shopping_list = []

        # Create a label
        self.label = tk.Label(root, text="Shopping List:")
        self.label.pack()

        # Create a listbox to display the items
        self.listbox = tk.Listbox(root)
        self.listbox.pack()

        # Create an entry field for entering items
        self.entry = tk.Entry(root)
        self.entry.pack()

        # Bind the Enter key to add a task
        self.root.bind('<Return>', lambda event=None: self.add_item())

        # Create buttons
        self.add_button = tk.Button(root, text="Add Item", command=self.add_item)
        self.add_button.pack()

        self.clear_button = tk.Button(root, text="Clear List", command=self.clear_list)
        self.clear_button.pack()

    def add_item(self):
        item = self.entry.get()
        if item:
            self.shopping_list.append(item)
            self.listbox.insert(tk.END, item)
            self.entry.delete(0, tk.END)  # Clear the entry field
        else:
            messagebox.showwarning("Warning", "Please enter an item.")

    def clear_list(self):
        self.shopping_list = []
        self.listbox.delete(0, tk.END)  # Clear the listbox

def main():
    root = tk.Tk()
    app = ShoppingListApp(root)
    root.mainloop()

if __name__ == "__main__":
    main()

“sample.py"に上記コードを貼り付け,セーブをする.その後,赤枠の矢印(Run Python File)をクリックする.

以下のように,Shopping listが開く.

参考

Udemy | ChatGPT Accelerated Python

以上