1
我正在尝试编写一个程序,该程序将项目添加到基于随机数的列表中。部分程序可能会滚动其他项目,但所有重复的项目都应该重新进行滚动。我的问题是,当我尝试使用我能够找到的方法(比较列表来设置列表来测试dups,然后将该列保存到列表),但我不断收到TypeError:'list'对象是不可调用。令人困惑的是,当我使用我设置的简单列表进行测试时,它工作正常。Python将设置转换为列表,不断收到TypeError:'list'对象不可调用
这是我的代码
from random import randint
# Dice roller function
def roll_dice(dice, sides, bonus):
count = 0
roll = 0
for count in range(dice):
roll += randint(1, sides)
roll += bonus
return roll
list = ['1', '2', '3', '4', '5']
print_list = ''
for x in range(0, len(list)-1):
print_list += ' ' + list[x]
print print_list[1:]
# Minor special armor ability roller
def armor_special_ability():
reroll = 1
ability = []
abil_list = ''
while reroll > 0:
result = int(raw_input('Roll:'))#roll_dice(1,100,0)
if result <= 25:
ability.append('Glamered')
elif result <= 32:
ability.append('Light Fortification')
elif result <= 52:
ability.append('Slick')
elif result <= 72:
ability.append('Shadow')
elif result <= 92:
ability.append('Silent Moves')
elif result <= 96:
ability.append('Spell Resistance (13)')
elif result <= 97:
ability.append('Improved Slick')
elif result <= 98:
ability.append('Improved Shadow')
elif result <= 99:
ability.append('Improved Silent Moves')
elif result <= 100:
reroll += 2
reroll -= 1
if len(ability) > len(set(ability)):
reroll += (len(ability) - len(set(ability)))
ability = list(set(ability))
return ability
print armor_special_ability()
谁能帮我弄清楚为什么我不断收到这个错误?我花了几个小时在网上搜索没有成功。
你可以通过键入'dir(__ builtins __)' – forivall
看到一个列表我实际上只是意识到我自己和登录关闭这篇文章。对于我之前测试过的代码没有发表评论,因为“这与我正在做的这件新事情没有关系”。 这也是我愚蠢地使用列表作为变量。 ^ _ ^ – KhornetheGrim