2025年9月30日 星期二

[水井USR創新教材]Python一下智慧減碳節水三生一體-類別

 2025年9月28尚虎雲在雲林官邸兒童館發表尚虎雲產銷平台。



以下程式是由ChatGPT產生。

範例一:魚菜共生模擬器

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
import math
import random
import logging
import functools

# 設定日誌
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(message)s')

class AquaponicsSimulator:
    """
    魚菜共生系統模擬器:模擬每月減碳與節水量。
    """

    def __init__(self, months, area=3.3058, base_emission=1.5, base_water=0.5):
        """
        初始化模擬器。
        參數:
            months: 模擬月數
            area: 魚池面積(平方米)
            base_emission: 每平方米年排放量(kg CO₂e)
            base_water: 每平方米月用水量(m³)
        """
        self.months = months
        self.area = area
        self.base_emission = base_emission
        self.base_water = base_water
        self.tech_carbon_reduction = 0.95  # 魚菜共生減碳效果(減少 5%)
        self.tech_water_saving = 0.9       # 魚菜共生節水效果(減少 10%)
        self.results = []                  # 儲存每月模擬結果

    def _simulate_month(self, current_month):
        """
        模擬單一月份的減碳與節水量。
        """
        # 季節性波動:夏季(6-8 月)增加 20%
        seasonal_factor = 1.2 if 6 <= (current_month % 12 or 12) <= 8 else 1.0
        monthly_emission = self.base_emission / 12

        carbon = (monthly_emission * self.area * seasonal_factor * self.tech_carbon_reduction +
                  random.uniform(-5, 5))
        water = (self.base_water * self.area * seasonal_factor * self.tech_water_saving +
                 random.uniform(-0.05, 0.05))

        # 驗證非負
        carbon = max(0, round(carbon, 2))
        water = max(0, round(water, 2))

        # 記錄日誌
        logging.info(f"Month {current_month}: Carbon = {carbon} kg CO₂e, Water = {water} m³")

        return carbon, water

    def _recursive_simulation(self, current_month=1):
        """
        遞迴模擬每月資料。
        """
        if current_month > self.months:
            return

        # 計算當月數據
        carbon, water = self._simulate_month(current_month)
        self.results.append((carbon, water))

        # 遞迴下一月
        self._recursive_simulation(current_month + 1)

    def run(self):
        """
        執行模擬並返回所有月份的結果。
        """
        self.results.clear()  # 清空舊資料
        self._recursive_simulation(1)
        return self.results

# === 測試使用 ===
if __name__ == "__main__":
    simulator = AquaponicsSimulator(months=12)
    monthly_data = simulator.run()

    print("水井村魚菜共生每月減碳與節水數據:")
    for i, (carbon, water) in enumerate(monthly_data, 1):
        print(f"第 {i} 月 - 減碳量: {carbon} kg CO₂e, 節水量: {water} m³")


範例二:水井三寶

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# 定義一個基礎寶物類別
class Treasure:
    def __init__(self, name, meaning, age):
        self.name = name
        self.meaning = meaning
        self.age = age

    def describe(self):
        return f"{self.name}:象徵 {self.meaning},已有 {self.age} 年歷史。"

    def __str__(self):
        return self.describe()

# 三寶:烏龜、白馬、番花

class Turtle(Treasure):
    def __init__(self):
        super().__init__("烏龜", "風水與守護", 300)

class WhiteHorse(Treasure):
    def __init__(self):
        super().__init__("白馬", "信仰與傳說", 150)

class Frangipani(Treasure):  # 雞蛋花的英文名稱
    def __init__(self):
        super().__init__("番花", "歷史與生命", 300)

# 建立物件
turtle = Turtle()
horse = WhiteHorse()
flower = Frangipani()

# 顯示介紹(透過 print(object) 直接呼叫 __str__)
print(turtle)
print(horse)
print(flower)

執行結果:
烏龜:象徵 風水與守護,已有 300 年歷史。
白馬:象徵 信仰與傳說,已有 150 年歷史。
番花:象徵 歷史與生命,已有 300 年歷史。

註:這些歷史時間只是ChatGPT對程式的預設值,需要再考證。

沒有留言:

張貼留言