【Python】Google Colab で Gemini 先生に手伝ってもらう
前回の Python ネタのつづき。
クソ暑い中、Blender のアドオン「JewelCraft」っぽい(?)ものを目指して、今日も素材作りに励んでおります。
上の記事で、カラットを Google スプレッドシートで計算すると書きましたが、せっかく Python を勉強し始めたこともあり、Python で計算させるコードを書いてみることにしました。
無謀?
いやいや。Microsoft Copilot さんがおりますのよ。
数年ぶりに Google Colab にアクセスする
以前、Python を勉強しようとして WEB ブラウザで動く何かを使った記憶があった。
そうそう、これ。
ひさしぶりにアクセスしてみたら、前より使い方がわかる気がする。
dictionary(辞書)と def(関数)
今回、覚えたい書き方はこの2点↓
(1)dictionary(辞書)で、宝石名と比重をセットにして、いつでも取り出せるようにしたい。
(2)def(関数)にまとめて、計算を再利用できるようにしたい。
とはいえ、前回の Python らしいコードは全部 Copilot さんに書いてもらったので書き方がわからない。
とはいえ、とはいえ、何か書かなければ何も始まらないので、手始めに「dictionary, def」辺りをテキトーに書いた。そしたらば、
「聞いて奥さん! なんと、 Google Colab には Gemini 先生がいて、エラー箇所を片っ端から修正提案してくれるのよ!!」
ということで、不出来な生徒と Gemini 先生の共同作業でなんとか、こちらのコードを書くことができた。
import math
def carat_calc(gem_name, volume):
for gem in dict_gem:
if gem.get('gem') == gem_name:
volume_mm = volume / 1000
density = float(gem.get('gravity'))
carat = volume_mm * density / 0.2
print(f"{gem.get('gem')} | {volume}mm^3 | {carat:.3f}ct")
else:
null_value = 'null'
dict_gem = [
{'gem':'Diamond', 'gravity':'3.52'},
{'gem':'Emerald', 'gravity':'2.80'},
{'gem':'Sapphire', 'gravity':'4.00'},
{'gem':'Ruby', 'gravity':'4.00'},
{'gem':'Tanzanite', 'gravity':'3.35'},
]
carat_calc('Tanzanite', 275.3576)
# Tanzanite | 275.3576mm^3 | 4.612ct
Gemini 先生にほとんど書いてもらったけど、ちゃんと動くコードになったから嬉しくて、Copilot さんに自慢したら「あなたのコードはほぼ正しいのですが、正しく動作させるためにはいくつかの調整が必要です。」ということで修正が入った。
(dictionary から ’gem’ と ’gravity’ を取り出す(?)書き方が変わったのと、宝石名が dictionary に無かった時の対応が入った。私が書いたのは宝石名が無かったら「何もしない」)
import math
def carat_calc(gem_name, volume):
for gem in dict_gem:
if gem['gem'] == gem_name:
volume_mm = volume / 1000 # Convert volume to cubic millimeters
density = float(gem['gravity']) # Get the specific gravity
carat = volume_mm * density / 0.2 # Calculate carat weight
print(f"{gem['gem']} | {volume} mm^3 | {carat:.3f} ct")
return
print("Gem not found")
dict_gem = [
{'gem': 'Diamond', 'gravity': '3.52'},
{'gem': 'Emerald', 'gravity': '2.80'},
{'gem': 'Sapphire', 'gravity': '4.00'},
{'gem': 'Ruby', 'gravity': '4.00'},
{'gem': 'Tanzanite', 'gravity': '3.35'},
]
carat_calc('Tanzanite', 275.3576)
# Tanzanite | 275.3576 mm^3 | 4.612 ct
いやあ、嬉しい。本当に Python のコードっぽい。少しでも自分で書くと嬉しいものね。
あーあ、若い頃に Gemini 先生や Copilot さんがいてくれたらよかったな。(今さら仕方がないけどさ)