見出し画像

【実践編】「未来の時代に必須のスキル!AIを使いこなすプログラミングの学び方」

今回のテーマ

前回の実践編。
「未来の時代に必須のスキル!AIを使いこなすプログラミングの学び方」

✅必要なもの

👉 Google Colaboratory
👉 ChatGPT

学習教材の準備方法

初心者でもできるプログラミングの題材が欲しい場合はChatGPTに下記のように質問してみましょう。

初心者向けにpythonの学習題材に初心者にも理解しやすく簡単にできるテーマがあれば教えてください。「Google Colaboratory」を使いますので、「Google Colaboratory」上で動作も確認できるものが良いです。

質問内容
🔺ChatGPTが実際に初心者向けのPython学習教材を提案してくれます。

質問の仕方を変えたり、同じ質問をしたとしても内容については多少変わってきます。この辺は流石AIという感じでしょうか。

さて、提案してきた今回の内容については下記のような学習教材を提案してくれました。

・数当てゲーム
・ToDoリスト
・天気予報
・ブログアプリケーション

今回は提案してくれた教材内容のうち「天気予報」について一緒にプログラミングを考えて行きたいと思います。

✅今回作るもの

・「天気予報」アプリ

実装手順(設計)の解説

これを実際にどうやって実装していくのか。

これもChatGPTに聞いてしまいます。

上記の内容で、以下について知りたいです。実際の作成手順を教えてもらえますか。
3. 天気予報 APIを使用して、ユーザーが指定した都市の天気予報を表示します。天気予報はグラフや表で表示できます。

質問内容
🔺こんな感じで手順を教えてくれます。

ChatGPTが教えてくれた設計手順は下記の手順です。

設計手順

  1. APIキーの取得

  2. APIから天気予報を取得するコードの実装

  3. ユーザーからの入力を受け取り、APIから天気予報を取得するコードの実装

  4. グラフや表で表示するコードの実装

では順番に一緒にやっていきましょう。

①APIキーの取得

まず、「APIキー」とはなんぞやって話ですが。早速わからないことはChatGPTに聞いてみましょう。

🔺わからないことは徹底的に聞いてみよう

要約すると、「プログラムから天気予報に関する情報を取得する際に必要なパスワード」のようなものです。

今回は「OpenWeatherMap」を使用しますので、こちらでアカウントを発行しAPIキーを取得しましょう。

🔺右上の「Sing In」に飛んで「Create an Account」をクリック
🔺登録時に必要な入力情報は上記のとおりです
🔺のようなメールが届くので「Verify your email」をクリック
🔺右上に表示されているユーザ名をクリックして、「My API keys」に飛ぶ
🔺「API Key」の場所にAPIキーがあるのでコピペして控えておく

②APIから天気予報を取得するコードの実装例

APIキーを取得したら、PythonでAPIから天気予報を取得するコードを実装します。

APIから取得した天気予報はJSON形式で返されるため、Pythonの json モジュールを使用してデータを取得、整理します。

以下は、OpenWeatherMapのAPIを使用して東京の天気情報を取得する例です。

import requests
import json

# APIキーと都市名を指定
api_key = "YOUR_API_KEY"
city = "Tokyo"

# APIから天気情報を取得
url = f"http://api.openweathermap.org/data/2.5/weather?q={city}&appid={api_key}&units=metric&lang=ja"
response = requests.get(url)
data = json.loads(response.text)

# 取得した情報から必要な情報を取り出し、表示する
weather = data["weather"][0]["description"]
temp = data["main"]["temp"]
print(f"東京の天気:{weather}")
print(f"東京の気温:{temp}℃")

もしわからないことがあれば適宜ChatGPTを活用していきましょう。

🔺使えるものはとことん使うこと

③ユーザーからの入力を受け取り、APIから天気予報を取得するコードの実装例

前のステップでは、APIから東京の天気予報を取得しました。

しかし、ユーザーが任意の都市の天気情報を取得できるようにするためには、都市名をユーザーから受け取る必要があります。

以下は、ユーザーから都市名を受け取り、OpenWeatherMapのAPIを使用して天気情報を取得するコードの例です。

import requests
import json

# APIキーと都市名を指定
api_key = "YOUR_API_KEY"
city = input("都市名を入力してください:")

# APIから天気情報を取得
url = f"http://api.openweathermap.org/data/2.5/weather?q={city}&appid={api_key}&units=metric&lang=ja"
response = requests.get(url)
if response.status_code == 404:
    print("都市が見つかりませんでした。")
else:
    data = json.loads(response.text)
    weather = data["weather"][0]["description"]
    temp = data["main"]["temp"]
    print(f"{city}の天気:{weather}")
    print(f"{city}の気温:{temp}℃")

④実際に実装してみよう

では、実際に実装してみましょう。

import requests
import json

# APIキーと都市名を指定
api_key = "取得したOpenWheatherMapのAPIキーをここにコピペする"
city = input("都市名を入力してください:")


# APIから天気情報を取得
url = f"http://api.openweathermap.org/data/2.5/weather?q={city}&appid={api_key}&units=metric&lang=ja"
response = requests.get(url)
if response.status_code == 404:
    print("都市が見つかりませんでした。")
else:
    data = json.loads(response.text)
    weather = data["weather"][0]["description"]
    temp = data["main"]["temp"]
    print(f"{city}の天気:{weather}")
    print(f"{city}の気温:{temp}℃")

③で紹介したコード👆をそのまま「Google Colaboratory」にコピペします。

🔺全てのプログラミングはコピペの乱用(1文字1文字入力しないこと)

「取得したOpenWeatherMapのAPIキーをここにコピペする」という箇所に、先ほど①で取得したAPIキーをコピペしてください。

🔺取得したAPIキーはapi_key="~"の""内にコピペ


これで出来上がり
🙌

✅コードの解説

このプログラムは、天気予報のOpenWeatherMapから天気情報を取得し、ユーザーが指定した都市の天気と気温を表示するプログラムです。

まず、requestsjsonというライブラリを読み込みます(import)。

次に、APIキーと都市名を入力してもらいます。APIキーは、APIを利用するために必要なキーで、これがあることでAPIから情報を取得することができます。都市名は、ユーザーが取得したい天気情報の都市(例:Tokyo)を入力します。

次に、指定された都市名を使って、天気予報のAPIから天気情報を取得します。取得した情報はJSON形式で返ってくるため、jsonライブラリを使ってPythonの辞書型に変換します。取得した情報の中から、天気情報と気温を取り出し、それぞれを表示します。

また、もし指定された都市名が見つからなかった場合には、「都市が見つかりませんでした。」と表示します。


❗️【注意】❗️

真面目なプログラミング初学者の方で1文字1文字丁寧に手入力でやろうとする方をよく見かけるのですが、時間の無駄ですし、プログラミングはそんなことをするためのものではありません

✅基本的にプログラミングはコピペの乱用です

この感覚は慣れるまで時間かかると思いますが、そういうものだと思ってください。実際の現場でも1文字1文字丁寧に手入力してるエンジニアなんていないですし、そんなことやってたら仕事ができません。


なんの処理をやってるのか分からない場合は、ChatGPTを使いながら質問力と知識を高めていきます

内容を完全に覚える必要はないですが、理解する必要はあります。🦉

🔺プログラミングで分からないことも教えてくれます

⑤実際に動かしてみる

実際に動かす場合は、「▷」ボタンをクリックします。
位置的にはちょうど「import」文がある左です。

🔺「■」になると実行中。

エラーがなければ、上の画像のように「都市名を入力してください」と出るはずです。

出力メッセージはプログラミングの中で、自分がコントロールしてるので、日本語で出てますが、サービス自体は英語のものを使用してますので、「Tokyo」と入力してあげます。

🔺入力後にエンター

無事に実行できると、上記のようにTokyoの天気情報を取得できます。

他の地域を知りたい場合は、下記の画像のように入力内容を変えてあげれば良いです。

🔺「Hiroshima」と入力したら、広島の情報を取得できた。

応用:グラフや表で表示するコードの実装

天気予報をグラフや表で表示するためには、matplotlibやpandasといったライブラリを使用します。具体的な手順は以下の通りです。

matplotlibやpandasをインストールします。Google Colaboratoryを使用している場合、以下のコードを実行してインストールできます。

!pip install matplotlib
!pip install pandas

天気情報を取得し、pandasのデータフレームに変換します。以下は、OpenWeatherMapのAPIを使用した例です。

import requests
import pandas as pd

api_key = "Your_API_key"
city = "Tokyo"
url = f"https://api.openweathermap.org/data/2.5/forecast?q={city}&appid={api_key}"

response = requests.get(url)
data = response.json()

df = pd.json_normalize(data["list"])

データフレームから必要な情報を抽出し、グラフや表を作成します。以下は、温度と湿度のグラフを作成する例です。

import matplotlib.pyplot as plt

plt.plot(df["main.temp"], label="Temperature")
plt.plot(df["main.humidity"], label="Humidity")
plt.legend()
plt.show()

グラフや表を保存する場合は、以下のようにコードを書きます。

plt.savefig("graph.png")
df.to_csv("data.csv")

これらの手順に従ってコードを実装することで、ユーザーが指定した都市の天気予報をグラフや表で表示し、保存することができます。

実際に動かす

実際に動かすコードは以下のようになります。

!pip install matplotlib
!pip install pandas

# インポート(ライブラリの読込み)
import requests
import pandas as pd
import matplotlib.pyplot as plt

# APIキーと、取得したい都市を指定する
api_key = "取得したOpenWheatherMapのAPIキーをここにコピペする"
city = "Tokyo"


url = f"https://api.openweathermap.org/data/2.5/forecast?q={city}&appid={api_key}"

response = requests.get(url)
data = response.json()

df = pd.json_normalize(data["list"])


# グラフや表を作成する処理
plt.plot(df["main.temp"], label="Temperature")
plt.plot(df["main.humidity"], label="Humidity")
plt.legend()
plt.show()

# グラフや表を保存する
plt.savefig("graph.png")
df.to_csv("data.csv")

これを「Google Colaboratory」にコピペして、「取得したOpenWeatherMapのAPIキーをここにコピペする」という箇所に、先ほど①で取得したAPIキーをコピペしてください。

あとは実行です。

🔺グラフを出力できる

実行結果上部の長ったらしい英文はライブラリをインストールした際の実行メッセージですので、無視で良いです。

画像のように実際に取得したデータをグラフとして出力することもできます。デザイン面もカスタマイズできますので、「matplotlib関数」についても調べてみてください。

下記キーワードを合わせて使えば、検索可能です。

【キーワード例】:「グラフ デザイン カスタマイズ matplotlib」

このままChatGPTに質問しても良いですが、応用編に関してはまだちょっと弱い部分もありますので、人が公開している情報に頼りましょう。

🔺応用的な情報はGoogle検索を頼る

このような感じでエンジニアはGoogle検索を多用します。

あとは出てきたサイトの中でコードなどを公開している場合があれば、都度必要な箇所をコピペしてプログラムを組んでいくこととなります。

ChatGPTに関しては返答内容に現状文字数制限があることから全てを ChatGPTで解決するのは無理があります。(2023年2月時点)

おまけ: 1人前のエンジニアになるには

最後にエンジニアを目指してる方向けにアドバイスできればと思い、自分なりの思いを書いてみます。

やっているうちに自分なりのこだわりだったり、もっとこうしてみたいなというアイデアが生まれてくるかもしれません。その実装方法はGoogle検索を駆使すれば、解決できることが多いです。

Google検索を駆使してプログラミングをできるようになれば、1人前のエンジニアですね。

ですが、エンジニアの仕事はプログラムを組むこと自体ではありません。問題を解き続けるのはスキルアップのためにも良いことですが、それ自体に本質的な意味はあまりないのです。

むしろ仕事の醍醐味は、頭を捻り新しいことを考え続けることです。プログラミングはあくまで1つの手段であって目的ではありません。

「プログラミングを使って何ができるのかわからない」って方は多いのですが、それを考えるのがエンジニアのお仕事です。極論を言ってしまえばパソコンを使ってできる作業は全て可能です。

プログラミングを使ってできることは無限にあります。

その中でもプログラミングを活用した方が良いこと、そうでもないこと、誰も開拓したことのない内容だったりが沢山あるわけですね。この篩い分けであったり未開拓のエリアを開拓できる楽しみがあるかと思います。

アイデアを出す際に ChatGPTを活用しながらアドバイスをもらうのも良いかと思います。新たな気づきもあるんじゃないでしょうか。

今回はこんな感じでChatGPTを使いながら、プログラミングを組んでみる方法について紹介してみました。

あと、Twitterもやってますので何かあれば質問いただければと思います。


いいなと思ったら応援しよう!