python for循环从第1个元素开始,第0个元素开始

时间:2020-06-12 21:40:32

标签: python arrays for-loop pycharm

我正在使用Python(在PyCharm上运行)编写一个基于文本的简单RPG战斗模拟器。我创建了一个名为Person的类,它具有以下初始化参数:

def __init__(self, name, HP, MP, ATK, DEF, magic, items):
    self.name = name
    self.HP = HP
    etc...

该类在main中为3个独特的玩家(player1, player2, player3)实例化3次。我还有一个功能get_stats(self)可以实现

print(self.name + ", HP: " + self.HP + ", MP: " + self.MP)

但是当我运行main

for player in players:
    player.get_stats()

players = {player1, player2, player3}处,得到输出(请注意,MP / HP值是任意的):

name2, HP: 200, MP: 200
name3, HP: 300, MP: 300
name1, HP: 100, MP: 100

如果是players = {player0, player1, player2, player3},我得到的输出是:

name2, HP: 200, MP: 200
name3, HP: 300, MP: 300
name0, HP: 400, MP: 400
name1, HP: 100, MP: 100

为什么会发生这种情况,我该如何解决?

2 个答案:

答案 0 :(得分:1)

fPm=open('primepm.csv', 'w') writerPm = csv.writer(fPm) writerPm.writerow(['P^m','Pm']) p=2 countpm=0 while p<2^8: for m in range(8): if (p^m>=256 and p^m<1000): writerPm.writerow([str(factor(p^m)),str(p^m)]) countpm=countpm+1 p=next_prime(p) if countpm==100: break 在python中创建一个{},该命令没有顺序:元素的输入方式没有存储。

您需要一个列表,该列表可以创建为:

set

或元组:

players = [player1, player2, player3]

答案 1 :(得分:1)

您使用的{}语法适用于Python中的set。集合没有顺序,并且在for语句中使用时会随机产生其成员。

只需保持一致,并使用(Player0, ...)表示一个元组,或使用[Player0, ...]表示一个列表-这两种类型都是“序列”,具有明确定义的顺序。

相关问题