所以我昨天开始使用Python,对于我的第一个项目,我想让怪物互相争斗。
我还在开始,我想用我创建的怪物填充一个列表。我的怪物函数询问它应该创建多少怪物并返回一个包含所有怪物的列表。
不知怎的,我的代码错了,只回馈了一个怪物:(
def create_monster(number):
monster = [0] * number
for i in monster:
"""monster = [ID,GENDER,NAME,HP,ATK,DEF,SATK,SDEF,AGIL,]"""
monster[i] = [monster_identifier(), monster_gender(), None]
monster[i][2] = monster_name(monster[i][1])
return monster
此代码的输出用于数字= 3,例如
[[3, 'Male', 'Berid'], 0, 0]
但应该是这样的
[[1,'Male','Berid'],[2,'Female','David'],[3,'Male','Holger']]
答案 0 :(得分:3)
你的循环:
for i in monster:
迭代monster
列表中的值。你没有得到索引,因为Python循环是foreach constructs。
您的列表中只包含数字0
:
monster = [0] * number
因此i
所有0
都设置为monster[i]
。这反过来就是为什么你只改变索引0处的元素,在你编写monster[0]
的任何地方都可以为同样的结果编写def create_monsters(number):
monsters = [] # empty list
for i in range(number): # loop number times
gender = monster_gender()
monster = [monster_identifier(), gender, monster_name(gender)]
monsters.append(monster) # add to the list at the end
return monsters
。
不是使用零预先构建列表,而是在循环时使用list.append()
添加新元素,并使用range()
计算您创建的怪物数量:
monsters
我将函数和列表重命名为复数 if (mail($recipient, $subject, $email_content, $email_headers)) {
// Set a 200 (okay) response code.
http_response_code(200);
} else {
// Set a 500 (internal server error) response code.
http_response_code(500);
echo "Oops! Something went wrong and we couldn't send your message.";
}
,表明这不仅仅是一个怪物。
答案 1 :(得分:1)
简单地替换
monster = [0] * number
带
monster = range(number)