ChatGPTは、会話するように質問や指示をするだけでプログラミングができる画期的なツール。初心者でも簡単にPythonのようなプログラミング言語の基本的な構文や機能を学ぶことが可能です。
この記事では、ChatGPTを使ってPythonコードを出力するプロンプトをいくつか紹介します。
【ChatGPT】簡単な演算を行うPythonコードを出力するプロンプト
簡単な演算を行うPythonコードを出力するためには、ChatGPTが非常に便利です。今回は一例として、半径を指定して円の面積を計算するPythonコードを出力してみましょう。
試しにこのコードが正しく動くか、Google Colaboratooryで実行してみましょう。
【ChatGPT】数値データをグラフ化するPythonコードを出力するプロンプト
数値データをグラフ化することも可能です。事前にいくつかの数値データを用意しておきましょう。今回は以下のリストを使用します。
・values = [12, 25, 35, 15, 40, 8, 21]
・プロンプト
Matplotlibを使って値のリストから棒グラフを作成するPythonコードスニペットを生成してください。
#値のリスト
values = [12, 25, 35, 15, 40, 8, 21]
こちらもGoogle Colabで実行してみましょう。
【応用編】電卓アプリのクラス図とコードを出力するプロンプト
ChatGPTの良いところは、これまで簡単には挑戦できなかったアプリケーション開発にも挑みやすい点です。AIがアシスタントとなって、適宜コードを出力したりアドバイスをくれます。
先ほど、演算など数値に関するコードを立て続けに扱ってきたので、応用編として「電卓アプリ」を開発してみましょう。
今回の要件定義は以下の通り。
・加算、減算、乗算、除算の方法を含む計算を管理するクラスを持つ、シンプルな電卓アプリケーションを設計する
この要件に沿って、必要な機能とクラスを整理し、システムを「クラス図」にまとめて出力。そのクラス図に沿って、Pythonコードを出力してみます。なお今回は「公開する」ことを目的としていないため、フロントエンドを開発してホストするといったことは行いません。具体的にはコマンドラインツールとして最低限の機能を実装します。
実装に必要な機能とクラスを整理する
アプリケーション開発では、まず必要な「機能」と「クラス」をリストアップすることが必要です。これらに抜け漏れがあると、機能の実装漏れやエラーが起こりやすくなるためです。
以下のプロンプトで、まず機能とクラスを一覧化します。Pythonコードにするための下準備に該当します。
・プロンプト
以下の「要件定義」に沿って必要な機能、クラスをリストアップしてください
# 要件定義
加算、減算、乗算、除算の方法を含む計算を管理するクラスを持つ、シンプルな電卓アプリケーションを設計する
クラス図にまとめる
出力された機能、クラスの一覧はあくまで箇条書きに過ぎないため、ややシステムの全体像がわかりのくいです。そこで「PlantUML」というクラス図やシーケンス図を出力可能なサービスを使って、図にまとめてみましょう。
図の出力には、PlantUMLの記法に従う必要があるため、PlantUMLの形式でクラス図をまとめ直してもらいましょう。
・プロンプト
先ほど出力した機能、クラスの一覧を以下の出力形式に沿って再出力してください
なお出力に当たって、要件を再度参照する必要がある場合は「要件定義」を再度参照してください
# 出力形式:
PlantUMLにペーストすることで、クラス図を作成可能な形式
# 要件定義
加算、減算、乗算、除算の方法を含む計算を管理するクラスを持つ、シンプルな1ページの電卓アプリケーションを設計する
クラス図を元にアプリケーションのPythonコードのたたき台を出力
以下のプロンプトで、整理したクラス図をベースにPythonコードを出力できます。
・プロンプト
出力した電卓アプリのクラス図をベースに、Pythonコードを出力してください
筆者が少しだけコードをアレンジして、Google Colabで動作確認をしてみました。
今回出力したPythonコードの一覧
最後に、本記事で紹介したPythonコードを一覧でご紹介します。
半径を指定して円の面積を出力するコード
import math
def calculate_circle_area(radius):
area = math.pi * (radius ** 2)
return area
# 半径を指定して円の面積を計算する
radius = 5 # 例: 半径5
circle_area = calculate_circle_area(radius)
print(f”半径 {radius} の円の面積は {circle_area} です。”)
値の一覧から棒グラフを出力するコード
import matplotlib.pyplot as plt
# 値のリスト
values = [12, 25, 35, 15, 40, 8, 21]
# x軸のラベル
x_labels = [f’Label {i}’ for i in range(1, len(values) + 1)]
# 棒グラフを作成
plt.bar(x_labels, values)
# グラフのタイトルと軸のラベルを設定
plt.title(‘棒グラフ’)
plt.xlabel(‘カテゴリ’)
plt.ylabel(‘値’)
# グラフを表示
plt.show()
電卓アプリのPythonコード
class Calculator:
def add(self, a, b):
return a + b
def subtract(self, a, b):
return a – b
def multiply(self, a, b):
return a * b
def divide(self, a, b):
if b == 0:
raise ZeroDivisionError(“Cannot divide by zero”)
return a / b
def clear(self):
pass
def display_result(self, result):
print(f”Result: {result}”)
class Button:
def __init__(self, label, action):
self.label = label
self.action = action
def on_click(self):
return self.action()
class InputField:
def get_value(self):
return float(input(“Enter a number: “))
def set_value(self, value):
pass
def clear_value(self):
pass
def main():
calculator = Calculator()
input_field = InputField()
operations = {
“+”: calculator.add,
“-“: calculator.subtract,
“*”: calculator.multiply,
“/”: calculator.divide,
}
while True:
num1 = input_field.get_value()
operator = input(“Enter an operator (+, -, *, /) or ‘q’ to quit: “)
if operator == “q”:
break
num2 = input_field.get_value()
if operator in operations:
result = operations[operator](num1, num2)
calculator.display_result(result)
else:
print(“Invalid operator”)
if __name__ == “__main__”:
main()
まとめ
この記事では、初心者向けにChatGPTを使ってPythonコーディングに挑戦する方法を紹介しました。簡単な演算や数値データのグラフ化、電卓アプリのクラス図とコードの出力に関するプロンプトを提供しました。これらのプロンプトを使用して、Pythonでのプログラミングを楽しみながら学ぶことができます。今回紹介したプロンプトを参考に、Pythonコーディングのスキルを向上させていきましょう。
※サムネイル画像(Image:Arsenii Palivoda / Shutterstock.com)