我正在尝试运行python代码,这似乎会导致错误。请帮帮我
def randomPlace(b,lis):
pos = []
for i in lis:
if available(b,i):
pos.append(i)
if len.pos() != 0:
return random.choice(pos)
else:
return None
b
是一个包含10个字符的列表,lis
是一个包含4个整数的列表
错误是:
追踪(最近一次呼叫最后一次):
文件“D:\ TestsPython \ TicTacToe.py”,第65行,in randomPlace 如果len.pos()!= 0:AttributeError:'builtin_function_or_method'对象没有属性'pos'
答案 0 :(得分:1)
表达式len.pos()
要求解释器找到len
(标准内置函数),查找其pos
属性(线索:它没有)那个看起来结果的电话。您确实希望将len
函数应用于pos
的值,因此应编码
if len(pos) != 0:
由于len始终返回整数结果,因此可以将其缩写为
if len(pos):
但是,请记住。空容器在Boolen上下文中估计False并且非空容器评估为True,通常将其缩短为
if pos:
答案 1 :(得分:1)
使用len(pos)
。
为了在python中找到列表的大小,语法为len(your_list)
。
在您的情况下,甚至不需要len
功能。你可以这样做:
if pos:
return random.choice(pos)
else:
return None
因为如果您的列表中包含任何元素,if
会将其视为True
。如果是空列表,则会将其视为False
。