第一話 ターミナル? 環境構築?
プログラミングって、よく分からないですよね。
C言語、Python、JavaScriptとか色々あるし、
全部英語で書かれてるし、エラー文が出るとイライラします。
そんな前置きはさておき、作者は今回、python?とやらで
初プログラミングをしました。
この記念すべき第一話の大まかな流れは下記の通りです。
①Spoitlight検索
②ターミナル
③環境構築
④作ったものの簡単な紹介
⑤html
⑥結果
⑦始めての感想
順に説明していきます。
①Spotlight検索
作者の使用しているpcはMacBook Air 13。
なろうの執筆と同じ機種を採用しました。
メンターはチャットgpt
生成aiは作者が指示したコードを貼り付けて貰うのが主な役ですが、
他にも分からなくなった事を聞くのに役立ちました。
さて、では何が分からないのか?
それは『Spotlight検索』です。
一部、は? と思われた読者の方もいるでしょうが、
そうです。このレベルの人間が挑むプログラミング..。
果たしてどうなる事やら..。
※Spotlight検索は、キーボードのcommand +シフトで表示されます。
②ターミナル
前にもあげた例の検索装置で、
カタカナでターミナルと入力すると、
黒アイコンに顔文字の、変なアイコンが出てきます。
それをクリックすると、更に可笑しな画面に飛ばされます。
『シェル』と言うらしいです。とにかく小さい。
白い枠組みの中に、作者の本名と機種名が書かれていました。
③環境構築
ここまで来たなら、後はaiに指示されたコードを打ち込むだけ。
作者は恐る恐る、キーボードを叩きました。
mkdir my_project
これだけで、my_projeectという名前のファイルが
finderの中に出来上がるらしいです。次に、
cd my_project
ファイルの中に入る事に成功。更に次は..。
python3 -m venv venv
venvという名前の仮想環境が出来上がりました。
ちなみに今回利用したpythonは、既に最新のものをダウンロードしてあります。
そして..。
source venv/bin/activate
これを打ち込む事によって、仮想環境が有効になり、
作者の本名と機種名、ファイル名の横に(venv)と表示されます。
pip install flask
仕組みはよく分かりませんが、flaskというソフトを
導入して、環境構築は終了ーー
と、ここまでにかかった時間は30分くらい。
最初のターミナルからのコード入力で苦戦はしたものの、
思ったより難しくないというのが率直な感想でした。
④作ったものの簡単な紹介
『サマーウォーズ』という作者が好きな映画の中に、
主人公の男の子が、ヒロインの誕生日から曜日を計算するシーンがあります。
数学的な知識を用いるらしく、解説動画を見てもサッパリでした。
しかし、プログラミングを使えばあるいは..、、
という経緯で、早速作ってみました。
以下がpythonのidleにて、生成aiに書かせたコードです。
app.py(コード全体の名前みたいなもんです)
from flask import Flask, render_template, request
import datetime
app = Flask(__name__)
@app.route('/', methods=['GET', 'POST'])
def index():
weekday = None
if request.method == 'POST':
birth_date = request.form['birth_date']
try:
# 生年月日をdatetimeオブジェクトに変換
date_obj = datetime.datetime.strptime(birth_date, '%Y-%m-%d')
# 曜日を取得
weekday = date_obj.strftime('%A')
except ValueError:
weekday = "無効な日付形式です。YYYY-MM-DD形式で入力してください。"
return render_template('index.html', weekday=weekday)
if __name__ == '__main__':
app.run(debug=True)
みたいな感じです。
コピペ作業ですが、
生成aiの優秀さは♯以降に、そのコードがどうゆう意味を持つのかを
解説してくれる点です。
さて、app.pyの作成はひと段落
次は噂に聞く『html』とやらを作ってみました。
⑤html
まずはmy_project(ファイル名)の中に、
templatesという名前の新しいファイルを作成。
mkdir templates
こう打ち込むだけです。
次に、htmlの作成に必要なツールですが今回は、
VS Code(Visual Studio Code)を採用ーー
早速ダウンロードしたそれを開くとなんとびっくり。
全部英語で書かれています。しかし恐るるに足らず..。
共テ英語だけなら9割取れる作者の手にかかれば読める読める..。
左上の書類マークを押して、Open folderってとこをクリックします。
そこからmy_project→templatesと進んでいき、開くを押せば出来たも同然。
VS Code内にて、index.htmlを追加。
以下がaiに書かせたコードです。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>生年月日から曜日を計算</title>
</head>
<body>
<h1>生年月日から曜日を計算</h1>
<form method="POST">
<label for="birth_date">生年月日 (YYYY-MM-DD):</label>
<input type="text" id="birth_date" name="birth_date" required>
<button type="submit">計算</button>
</form>
{% if weekday %}
<p>その日の曜日は: {{ weekday }}</p>
{% endif %}
</body>
</html>
意味が分からない..。しかし、これで土台は完成みたいです。
⑥結果
ターミナルに戻り入力ーー
python app.py
すると、赤と黄色の変な文字と共に、
試験用のURL 「http://127.0.0.1:5000」
上記のものが貰えるはずです。
これを、safariでもChromeでも、検索エンジンにかけて
望み通りの出力がなされれば成功なのですが結果は果たして..。
成功!!
諸事情により写真は添付できませんが(背景に個人情報が写っている)、
作成日、2025年2月18日の曜日が火曜日である事を当ててくれました。
とくれば、作者の誕生日の曜日も当てられるのか? と思い早速入力ー
結果は土曜日との事でしたが、、
『ごめん、何曜日か知らないや』
合ってるのか外れてるのか、分からないですが、
まぁ多分合っているでしょう。
作者は手元にmacさえあれば、
夏希先輩(サマーウォーズのヒロインの名前)のそれを当てれるのです。
......。
虚しい。
⑦感想
意外と簡単に出来たのは、生成aiに手取り足取り教えて貰えたからで、
何もない真っ新な状態から作れと言われたら多分挫折します。
(噂に聞く挫折率9割は誇張でもなんでもないと思いました)
要するに大事なのは、
1、自分の作りたいものを明確にする
2、生成aiを使う
の二点だと思います。
従来だとgoogleや本を使って調べるのが主流だったらしいですが、
aiは自分が今分からなくて困っている事をピンポイントで聞けるので、
そこが魅力的だなーと思いました。
プログラミングは面白い..。
この日記は恐らく更新頻度は高くありませんが、
次話ではもっと高度なものを作ってみたいなぁと、考えている次第です。