回答here。
1。首先,如上面的代码所示,我创建了变量POWER
,gandalf
和saruman
,然后创建了一个名为spells
的变量来存储巫师的法术数量投。
代码
POWER = {
'Fireball': 50,
'Lightning bolt': 40,
'Magic arrow': 10,
'Black Tentacles': 25,
'Contagion': 45
}
gandalf = ['Fireball', 'Lightning bolt', 'Lightning bolt', 'Magic arrow', 'Fireball',
'Magic arrow', 'Lightning bolt', 'Fireball', 'Fireball', 'Fireball']
saruman = ['Contagion', 'Contagion', 'Black Tentacles', 'Fireball', 'Black Tentacles',
'Lightning bolt', 'Magic arrow', 'Contagion', 'Magic arrow', 'Magic arrow']
spells=10
gandalf_wins=0
saruman_wins=0
gandalf_power=[]
saruman_power=[]
我被困在这里,因为我不知道如何为每个带有咒语和咒语威力的词典创建一个字典。那我该怎么比较呢?预先感谢!
答案 0 :(得分:0)
我认为这些步骤的指示非常清楚,使用for
循环足以解决第3部分。
对于第四部分,您可以使用zip
来同时迭代两个列表。
for gandalf_pow, saruman_pow in zip(gandalf_power, saruman_power):
# compare
答案 1 :(得分:0)
下面是使用zip遍历所有咒语并比较每回合的咒语威力的方法。
POWER = {
'Fireball': 50,
'Lightning bolt': 40,
'Magic arrow': 10,
'Black Tentacles': 25,
'Contagion': 45
}
gandalf = ['Fireball', 'Lightning bolt', 'Lightning bolt', 'Magic arrow', 'Fireball', 'Magic arrow', 'Lightning bolt', 'Fireball', 'Fireball', 'Fireball']
saruman = ['Contagion', 'Contagion', 'Black Tentacles', 'Fireball', 'Black Tentacles', 'Lightning bolt', 'Magic arrow', 'Contagion', 'Magic arrow', 'Magic arrow']
spells=10
gandalf_wins=0
saruman_wins=0
for gandalf_spell, saruman_spell in zip(gandalf,saruman):
if POWER[gandalf_spell] > POWER[saruman_spell]:
gandalf_wins+=1
elif POWER[saruman_spell] > POWER[gandalf_spell]:
saruman_wins+=1
print(f"Gandalf won {gandalf_wins} times, Saruman won {saruman_wins} times")
答案 2 :(得分:0)
您应该参考Python字典。它们就像列表和元组一样,唯一的区别是它们就像数据库的表,其中有用于存储不同值的行和列
https://www.w3schools.com/python/python_dictionaries.asp 寻求帮助
答案 3 :(得分:0)
我认为您不需要为此使用字典。您可以尝试:
for x in range(spells):
gandalf_attack = POWER[gandalf[x]]
saruman_attack = POWER[saruman[x]]
if gandalf_attack>saruman_attack:
# Do something
elif gandalf_attack>saruman_attack:
# Do something
else:
# Tie
答案 4 :(得分:0)
最后,我这样做并为我工作:
for spell in gandalf:
gandalf_power.append(POWER[spell])
for spell in saruman:
saruman_power.append(POWER[spell])
winner = ""
for g, s in zip(gandalf_power, saruman_power):
if g > s:
gandalf_wins+=1
saruman_wins=0
elif s > g:
saruman_wins+=1
gandalf_wins=0
if gandalf_wins==3:
winner="Gandalf"
break
elif saruman_wins==3:
winner="Saruman"
break
if gandalf_wins < 3 and saruman_wins < 3:
print("Tie.")
else:
print(f"The winner is {winner}!")