在以下自定义功能中:
def get_a_random_memory(length, lower_sum_range, upper_sum_range):
memory = list()
for i in range(0, length):
memory.append((2 * random.randint(0, 1) - 1))
sum = 0
for i in range(0, length):
if len(memory) == 0:
sum = memory[i]
else:
sum = sum + memory[i]
我收到以下错误。
>>> print memories.get_a_random_memory(10, 1, 10)
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "C:\Users\omarshehab\PycharmProjects\practice\memories.py", line 28, in get_a_random_memory
if len(memory) == 0:
TypeError: 'list' object is not callable
我假设我正在正确访问列表变量内存。
请帮忙吗?
答案 0 :(得分:1)
你可以考虑这样做:
def get_a_random_memory(length, lower_sum_range, upper_sum_range):
memory = [(2 * random.randint(0, 1) - 1) for i in xrange(length)]
total = sum(memory)
print memory
print total
get_a_random_memory(10, 0, 0)
您应该避免使用sum
作为变量,因为已经有一个具有该名称的Python函数会自动在列表上执行计算。
此脚本将显示:
[1, -1, -1, -1, -1, 1, 1, 1, -1, -1]
-2