假设我有一个列表,我希望用户能够使用列表项作为答案,并使用if语句来检查列表。如果我没有解释清楚,这段代码可能会清除我正在尝试做的事情:
list = ['a', 'b', 'c', 'd', 'e']
input = raw_input("Choose a letter.: ")
if input == letter in list:
#do something
我的问题是当玩家输入列表项时,如何设置if语句来引用项目列表。一个更复杂,更相关的例子可能是:
spells = ['fireball', 'iceball', 'lightning bolt', 'firestorm', 'heal', 'paralyze']
equipped_spells = ['fireball', 'iceball']
print equipped_spells
attack = raw_input("Type the name of a spell you want to use.: ")
if attack == spell in spells:
#initiate combat loop
我希望玩家能够从他/她的装备法术列表中输入一个咒语,并让if语句引用全局法术列表,以查看该咒语名称是否为有效咒语。
也许可能有更好的方法来做到这一点。
答案 0 :(得分:2)
由于我们不是野人,只要求用户输入足够的法术就可以明确。
spells = ['fireball', 'iceball', 'lightning bolt', 'firestorm', 'heal', 'paralyze']
equipped_spells = ['fireball', 'iceball']
print equipped_spells
while True:
inp = raw_input("Type the name of a spell you want to use.: ").lower()
lst = [x for x in spells if x.startswith(inp)]
if len(lst) == 0:
print "No such spell"
elif len(lst) == 1:
spell = lst[0]
break
else:
print "Which of", lst, "do you mean?"
print "You picked", spell
['fireball', 'iceball'] Type the name of a spell you want to use.: fir Which of ['fireball', 'firestorm'] do you mean? Type the name of a spell you want to use.: fireb You picked fireball
答案 1 :(得分:1)
检查攻击是否在法术列表中:
if attack in spells:
您可能还想在列表中找到它的位置:
spell_pos = spells.index(attack)