Pythonで分からないことがあればChatGPTに聞いてみよう（中の人いるでしょ疑惑）

# Python（というがプログラミング全般）を学ぶとき
プログラミングは、ひとつ言語を習得すれば、根本的な考え方が他の言語でも使えますが、
もちろん言語により、記載するお作法も違うし、ライブラリやAPI、メソッドの使い方が違います。

これまでは書籍や、公式マニュアル、各種ブログ等で調べつつ、なぜそういう記載とするかを調べていき会得していくのが王道でしたが、
今話題のChatGPTを使うと、専門の先生がついたように、非常に具体的に教えてくれます。

# ChatGPT先生に具体的に聞いてみよう
アカウントの作り方、利用方法はもう多数記載されている方がいますが簡単に。

[ChatGPT](https://openai.com/blog/chatgpt/ "ChatGPT")

<img src = "https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3111552/5a71ef93-fa69-68c5-cf44-24ec0c39b886.png" width = 50%>

上記の「TRY ChatGPT」から、アカウント登録を行うだけです。
メールアドレス、パスワードを設定後、携帯電話のSMS認証を求められるので指示通り入力すればOKです。

アカウント登録が終わり最初の画面に進むと、以下のような画面が出ます。

<img src = "https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3111552/75576619-141a-8f76-60ec-f4ad38687214.png" width = 50%>

英語で入力するのかな？？でも日本語で会話した結果をレビューしているサイトも多数あるよね？？？と思い、、、、


聞いてみました。
<img src = "https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3111552/de063279-148e-8a6c-fac8-916ed5a79f91.png" width = 70%>

中の人いるでしょ。という感じで丁寧に答えてくれます。
というように、日本語での会話が可能です。


# ChatGPT先生にPythonのことを聞いてみよう
### 想定シチュエーション
無料で公開されている、データサイエンス100本ノックを例にします。
[データサイエンス100本ノック（構造化データ加工編）](https://github.com/The-Japan-DataScientist-Society/100knocks-preprocess "データサイエンス100本ノック（構造化データ加工編）")

これを学んでいき、ある問題で

> P-004: レシート明細データ（df_receipt）から売上日（sales_ymd）、顧客ID（customer_id）、商品コード（product_cd）、売上金額（amount）の順に列を指定し、以下の条件を満たすデータを抽出せよ。
> - 顧客ID（customer_id）が"CS018205000001"

という問があり、

```python:Python
df_receipt[df_receipt['customer_id'] == 'CS018205000001'][['sales_ymd', 'customer_id', 'product_cd', 'amount']]
```
かなぁ。と思っていたら、

```python:Python
df_receipt[['sales_ymd', 'customer_id', 'product_cd', 'amount']].query('customer_id == "CS018205000001"')
```

という解もあることに気が付きます。queryというものがあるのですね。という気付きです。
これは簡単な例ですが、こういう自分の知らなかったことを知っていくことが勉強となります。


### 調べてみよう：「queryってどう使うの？」
従来だと、ここでqueryについてGoogle先生に聞いていました。こんな感じ。
<img src = "https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3111552/3aa2ea05-32ff-f152-e6e5-bd813dbd7fce.png" width = 70%>

でも今回は、ChatGPT先生に聞いてみましょう。
イメージとしては、仕事で有識者や先輩に質問する感じで質問文を書けば大丈夫かと思います。
<img src = "https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3111552/a35dc860-6a57-2d4e-eeb2-a9a75c1f88fe.png" width = 70%>
<img src = "https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3111552/71cc4d4f-ce5a-2716-088e-4a26d24323e2.png" width = 70%>

まさかのサンプルコード付きで、いくつかの利用シーンを教えてくれました。


### 調べてみよう：「query内で正規表現を使うときはどうするの？」
まだまだ行きます。データサイエンス100本ノックを進めると、query内で正規表現を用い条件を絞る問題があります。
正規表現も使えそうだな、と思い、ChatGPT先生に聞いてみます。
<img src = "https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3111552/65ba5566-28ee-2fa5-5a1d-eac33322c9bc.png" width = 90%>

なるほどなるほど、でもあまり正規表現自体慣れていないから、具体的にどう書くかも知りたいな、、、と思ったら、
聞いてみましょう。

<img src = "https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3111552/dc87099d-2d14-0111-4f73-d1ca499e7355.png" width = 90%>

こちらも丁寧に、主たる使い方とその例までまとめてくれました。


### 調べてみよう：「engineって何？」
データサイエンス100本ノックを見てみると、queryを使うとき「engine = 'python'」と書いてあります。
あれ、ChatGPT先生のサンプルには書いていない、これは何だろう、、？

と思ったら、素直に聞いてみましょう。
<img src = "https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3111552/3212b45c-d801-1aed-4d24-fc88a33bf6cd.png" width = 90%>


### わかりやすかった！お礼を言おう
リアルな人と会話しているように、聞きたいことに対し具体で答えてくれたので、
ついついお礼を言いたくなってしまいました。

<img src = "https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3111552/630dc5a7-b4e4-db6f-8a9e-0654ce55e071.png" width = 90%>

・・・絶対中の人いるでしょ！！！


# ChatGPT先生になんでも聞いてみよう
Googleが緊急事態宣言出すぐらいに、今までの「調べる営み」が大きく変わったように思えます。
もちろん誤った答えを出すこともあると思いますが、それはリアルな人に聞く際にも同様だとおもうので、
ある程度信じられる、何でも聞ける人が出たと思って、ガンガン聞いて学んでいきましょう。

回答をゆっくり作っていく感じが、リアルな人が入力しているかのようで、好きです。



# 利用にあたり知っておくといいこと
たまに、回答が途中で切れます。※回答生成中の場合は黒い四角が点滅します、その場合は待ちましょう
その場合は「続きをお願いします。」などを書けば、続きを答えてくれます。


# おまけ
ChatGPT先生は技術分野以外も答えられます。

<img src = "https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3111552/38e2cb6f-9b93-ca21-32e1-d7cc81dc7d4b.png" width = 90%>

価格.comあたりから持ってきただけ？と思ってみましたが
そのランキングと順番などは一致せずとも、ある程度人気機種を選んでいる様子。
すごいな、、、