我正在定义一个函数(results
),该函数包含一个for循环,其结果是一个随机数(a
)。因此,例如,如果循环运行10次,它将生成10个不同的数字。我想将这些数字存储在循环中的列表中,然后打印以查看生成了哪些数字。
尽管我不知道该怎么做,但我想到了使用append。到目前为止,这是我的代码,尽管print语句不起作用(我收到一条错误消息,说我没有正确使用append)。
import maths
def results():
items = []
for _ in range(1,10):
a = maths.numbers()
items.append(a)
print(items)
答案 0 :(得分:1)
.append
需要在列表上而不是a
上被调用。 list
还需要在循环外部进行初始化,以便能够append
对其进行初始化。这是您方法的固定版本:
from random import random
def results():
# First, initialize the list so that we have a place to store the random values
items = []
for _ in range(1,10):
# Generate the next value
a = random()
# Add the new item to the end of the list
items.append(a)
# Return the list
return items
Here is some more documentation中的append()
方法,进一步说明了其工作原理。
还值得注意的是,range
会生成从起始值到(但不包括)stop参数的值。因此,如果您打算生成10个值,则应该执行range(0, 10)
,因为range(1, 10)
仅会给您9个值。
如果您想更进一步,可以使用list comprehension来避免完全使用append
,并提供一个参数来指示想要多少个随机数:
def results(num=10):
return [random() for _ in range(0, num)]
# produces a list of 10 random numbers (by default)
foo = results()
# produces a list of 20 random numbers
bar = results(20)
答案 1 :(得分:1)
您可以执行以下操作:
import maths
list_with_numbers=[]
def results():
for _ in range(1,10):
a = maths.numbers()
list_with_numbers.append(a)
print(list_with_numbers)
很明显,但不要忘记所有功能本身。
答案 2 :(得分:0)
append
是您必须在列表上使用的一种方法,因此基本上您会这样:randomList.append(a)
,并且不要忘记在函数开始之前预先初始化列表: {1}}
答案 3 :(得分:0)
您有一些小错误
maths
模块a
是数字,而不是列表。您应该在列表上添加您调用print
之后,循环结束,而不是每次迭代都结束
从随机导入随机
def results(): 数字= []
for _ in range(1,10):
a = random()
print(a)
numbers.append(a)
return numbers