見出し画像

【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 さんがいてくれたらよかったな。(今さら仕方がないけどさ)


WEBデザイナー(自営業)のおばちゃんです。最近はBlenderネタ多めです。