Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python for循环不接受fed值_Python_Python 3.x - Fatal编程技术网

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()