我正在尝试编写一个对函数中数组的正负元素求和的程序。但是我在给数组分配随机数方面遇到问题。我能做什么?
我的代码=>
def meto_foo(a):
t1=0
t2=0
if a<0:
t1=t1+a
if a>0:
t2=t2+a
return t1,t2
nums = []
for i in range(5):
nums = random.randint(-5,5)
print(nums)
print(meto_foo(nums))
我的输出=>
3
-3
0
-1
2
(0, 2)
答案 0 :(得分:0)
在for循环中,您正在将列表变量nums
重新分配给单个随机整数值。您可以改为附加到列表。
nums = []
for i in range(5):
num = random.randint(-5,5)
nums.append(num)
print(nums)
答案 1 :(得分:0)
但是我在给数组提供随机数方面遇到问题。我能做什么 干嘛?
使用列表推导生成随机数数组
num = [random.randint(-5,5) for i in range(5)]
答案 2 :(得分:0)
只需修改您的代码即可:
def meto_foo(a):
t1=0
t2=0
for i in a:
if i<0:
t1=t1+i
if i>0:
t2=t2+i
return t1,t2
nums = []
for i in range(5):
num = random.randint(-5,5)
nums.append(num)
print(nums)
print(meta_foo(nums))
代码中的错误之处在于,您只向meta_foo()方法发送了最后一个值
答案 3 :(得分:0)
如果您要查找的是一个正负数列表并将它们相加,那么您实际上就不需要random
,因为range
应该会给您这样的列表,您可以使用{ {1}}添加所有值:
sum()
但是,如果要限制在5范围内,请使用nums = [i for i in range(-5,5)]
print(nums)
#Output:
[-5, -4, -3, -2, -1, 0, 1, 2, 3, 4]
print(sum(nums))
#Output:
-5
生成该范围内的值,然后使用random()
:
sum()