Python for循环不接受fed值
我正在做一个程序,模拟封闭系统中的鱼。 我希望能够为每条鱼创建多个实例,这样每条鱼都可以像口袋妖怪一样单独跟踪 我已经为我的初始值创建了此部分:Python for循环不接受fed值,python,python-3.x,Python,Python 3.x,我正在做一个程序,模拟封闭系统中的鱼。 我希望能够为每条鱼创建多个实例,这样每条鱼都可以像口袋妖怪一样单独跟踪 我已经为我的初始值创建了此部分: TilapiaWeight = 0.05 TilapiaFCR = 0.1 TilapiaFeedStatus = 10 TilapiaFeedAmount = 0.9*TilapiaWeight WasteAmt = (1-TilapiaFCR)*TilapiaFeedAmount Waste = 10 days = ["Mon"],["Tue"],
TilapiaWeight = 0.05
TilapiaFCR = 0.1
TilapiaFeedStatus = 10
TilapiaFeedAmount = 0.9*TilapiaWeight
WasteAmt = (1-TilapiaFCR)*TilapiaFeedAmount
Waste = 10
days = ["Mon"],["Tue"],["Wed"],["Thu"],["Fri"],["Sat"],["Sun"]
time = 0
PlantUptakeList = [0.002,0.003] #the uptake rate of each plant
Plants = []#Testing list appending["Green Lettuce","Red Lettuce"]
PlantUptakeSum = 0
PlantsPerM2 = 30
PTX=[]
及
我的更新部分
当罗非鱼重量<0.5且废物>=0时:
TilapiaFeedStatus = TilapiaFeedStatus + TilapiaFeedAmount
TilapiaWeight = TilapiaWeight + (TilapiaFCR*TilapiaFeedAmount)
Waste = Waste + WasteAmt
TilapiaFeedStatus=TilapiaFeedStatus - TilapiaFeedAmount
Waste = Waste - PlantUptakeSum
PlantsUpdate = [x+0.0001 for x in PlantUptakeList]
PlantUptakeList = PlantsUpdate
PlantUptakeSum = sum(PlantUptakeList)
PrintTilapia = "Weight",TilapiaWeight,"Waste",Waste,"Day:",time,"Plant uptake",PlantUptakeList
PrintTilapiaList = [TilapiaFeedStatus, TilapiaFeedAmount, TilapiaWeight, Waste, time]
time = time + 1
我不明白的是,我怎么能对罗非鱼1号和罗非鱼2号进行测试,因为它们的起始重量可能不同。
我也在尝试使用
TilapiaLog.append(set((PrintTilapiaList)))
在第二个块的末尾,在它迭代时记录所有的值,但它只是使同一个集合的列表越来越长,重复x次
然后,我根据以下建议进行了更新:
class Fish:
def __init__(self, type, number, weight, status, feed, fcr, wastestatus):
self.type = type
self.number = number
self.weight = weight
self.status = status
self.feed = feed
self.fcr = fcr
self.wastestatus = wastestatus
def update(self, type, number, weight, status, feed, fcr, wastestatus):
status = status + feed
weight = weight + (fcr * feed)
wastestatus = wastestatus + (1-fcr)
PrintTilapia = type, number, weight, status, feed, fcr, wastestatus
print(type, number, weight, status, feed, fcr, wastestatus)
return type, number, weight, status, feed, fcr, wastestatus
#...do something to this fish
然后创建许多fish实例:
您可以将它们分组到一个集合中
然后你让他们活下来,进化,随你的便
这将返回:
如果我给它这些值,这怎么可能呢?你创建了一个罗非鱼类的类,它拥有你的鱼的特征和行为
class Tilapia:
def __init__(self, weight, status, ...):
self weight = weight
self.status = status
def update(self):
...do something to this fish
然后创建许多fish实例:
tilapia1 = Tilapia(12, 'happy')
tilapia2 = Tilapia(5, 'hungry')
...
您可以将它们分组到一个集合中
tilapias = [tilapia1, tilapia2, ...]
然后你让他们活下来,进化,随你的便
for t in range(time_span):
for tilapia in tilapias:
tilapia.update()
你可能需要找到一个好的OOP教程这听起来是一个理想的课程。谢谢你,我的兄弟,我确实需要一个好的教程。我在构建迭代时遇到了问题,让它们在一个while循环中运行,这正是我需要的,非常感谢。更新问题
class Tilapia:
def __init__(self, weight, status, ...):
self weight = weight
self.status = status
def update(self):
...do something to this fish
tilapia1 = Tilapia(12, 'happy')
tilapia2 = Tilapia(5, 'hungry')
...
tilapias = [tilapia1, tilapia2, ...]
for t in range(time_span):
for tilapia in tilapias:
tilapia.update()