水井村智慧減碳節水三生一體實踐計畫有一個很重要的KPI,就是要減碳5%, 本篇我們就先來用模擬的方式來看減碳5%對於場域的的影響,我們也考慮確保 6-8 月排放增加,模擬夏季高耗能情境,例如:6 <= (month % 12 or 12) <= 8。
範例一:生成式
1 2 | month=[f"第{i}月" for i in range(1, 13)] print(month) |
['第1月', '第2月', '第3月', '第4月', '第5月', '第6月', '第7月', '第8月', '第9月', '第10月', '第11月', '第12月']
範例二:含有判斷式的生成式
1 2 3 4 5 | import random base_emission = 100 # 基準碳排放量(噸) tech_impact = 0.95 # 技術介入的減碳效果(每月減少5%) impact=[round(base_emission * ((1.2 if 6 <= (month % 12 or 12) <= 8 else 1.0)) * (tech_impact ** month)+random.uniform(-5, 5), 2) for month in range(1, 12 + 1)] print(impact) |
執行結果:
[96.57, 87.64, 83.33, 80.68, 73.26, 90.74, 83.72, 84.43, 65.35, 63.81, 56.53, 50.54]
範例三:把範例一和二合成字典
1 2 3 4 5 6 7 | import random month=[f"第{i}月" for i in range(1, 13)] base_emission = 100 # 基準碳排放量(噸) tech_impact = 0.95 # 技術介入的減碳效果(每月減少5%) impact=[round(base_emission * ((1.2 if 6 <= (month % 12 or 12) <= 8 else 1.0)) * (tech_impact ** month)+random.uniform(-5, 5), 2) for month in range(1, 12 + 1)] month_impact=dict(zip(month,impact)) print(month_impact) |
{'第1月': 97.5, '第2月': 87.14, '第3月': 85.1, '第4月': 86.0, '第5月': 76.31, '第6月': 86.06, '第7月': 80.19, '第8月': 82.19, '第9月': 64.37, '第10月': 55.71, '第11月': 54.77, '第12月': 50.24}
範例四:字典生成式
1 2 3 4 5 | import random base_emission = 100 # 基準碳排放量(噸) tech_impact = 0.95 # 技術介入的減碳效果(每月減少5%) month_impact={f"第{month}月":round(base_emission * ((1.2 if 6 <= (month % 12 or 12) <= 8 else 1.0)) * (tech_impact ** month)+random.uniform(-5, 5), 2) for month in range(1, 12 + 1)} print(month_impact) |
{'第1月': 94.96, '第2月': 87.65, '第3月': 90.21, '第4月': 78.92, '第5月': 75.33, '第6月': 90.81, '第7月': 84.18, '第8月': 75.96, '第9月': 60.68, '第10月': 60.1, '第11月': 61.06, '第12月': 50.56}
範例五:產生器
1 2 3 4 5 6 7 | import random base_emission = 100 # 基準碳排放量(噸) tech_impact = 0.95 # 技術介入的減碳效果(每月減少5%) impact=(round(base_emission * ((1.2 if 6 <= (month % 12 or 12) <= 8 else 1.0)) * (tech_impact ** month)+random.uniform(-5, 5), 2) for month in range(1, 12 + 1)) for month, value in enumerate(impact): month=month+1 print(f"第{month}月碳排為{value}噸") |
執行結果:
第1月碳排為92.95噸
第2月碳排為90.24噸
第3月碳排為89.17噸
第4月碳排為77.57噸
第5月碳排為80.54噸
第6月碳排為90.5噸
第7月碳排為84.88噸
第8月碳排為75.62噸
第9月碳排為61.72噸
第10月碳排為57.54噸
第11月碳排為58.99噸
第12月碳排為58.33噸
範例六:產生器只會出現過一次,使用2次迴圈,也只會在第一次時才有值
1 2 3 4 5 6 7 8 9 10 | import random base_emission = 100 # 基準碳排放量(噸) tech_impact = 0.95 # 技術介入的減碳效果(每月減少5%) impact=(round(base_emission * ((1.2 if 6 <= (month % 12 or 12) <= 8 else 1.0)) * (tech_impact ** month)+random.uniform(-5, 5), 2) for month in range(1, 12 + 1)) for month, value in enumerate(impact): month=month+1 print(f"第{month}月碳排為{value}噸") for month, value in enumerate(impact): month=month+1 print(f"第{month}月碳排為{value}噸") |
執行結果:
第1月碳排為93.49噸
第2月碳排為89.92噸
第3月碳排為87.4噸
第4月碳排為84.28噸
第5月碳排為73.18噸
第6月碳排為92.6噸
第7月碳排為79.19噸
第8月碳排為78.11噸
第9月碳排為67.45噸
第10月碳排為58.03噸
第11月碳排為54.94噸
第12月碳排為49.71噸
沒有留言:
張貼留言