我是python的新手,想问一个简单的问题。
我正在尝试使该程序循环,并且每次循环时,它都应该在列表中存储一个变量。
请帮助
到目前为止,这是我的代码:
import random
for x in range(1,100):
q=random.randint(0,99)
w=random.randint(0,99)
e=q*w
q=[]#This is the list
print '%s * %s = %s'%(q,w,e)
您需要在循环外部定义列表,并将其追加到循环内部。
import random
# Define your list
l = []
for x in range(1,100):
q=random.randint(0,99)
w=random.randint(0,99)
e=q*w
# Append the result to your list
l.append(e)
print '%s * %s = %s'%(q,w,e)
print 'The list becomes: %s' % l
让我们逐行浏览代码
import random
for x in range(1,100): # this will go 1, 2, ... , 99
q = random.randint(0, 99) # q is a random number 0-99
w = random.randint(0, 99) # w is a random number 0-99
e = q * w # e is q times w
q = [] # q is now an empty list
print '%s * %s = %s' % (q,w,e)
# q is an empty list, so this is wrong
显然,您并不是每次都尝试将q
分配给一个空列表。您需要在循环之前创建一个列表,然后继续添加它。
some_list = [] # some_list is an empty list
for _ in range(99): # this will go 0, 1, ... , 98
q = random.randint(0, 99) # q is a random number 0-99
w = random.randint(0, 99) # w is a random number 0-99
e = q * w # e is q times w
some_list.append(e) # add e to the list!
print "%s * %s = %s" % (q,w,e)
# print "q * w = e"
请注意,当您变得更高级时,可以将其很好地包装为列表理解,因此您不必先将其初始化为空然后添加到列表中。
some_list = [random.randint(0,99) * random.randint(0,99) for _ in range(99)]
# equivalent to your code
但是这仍然超出您的舒适度。一步一步来! :)
这里我要更改的注意事项:
range
是半开范围,例如range(1,100)
是99个数字,1-99
。它不包括100。for _ in range(some_number)
。您使用下划线(_
)来表示其他编码器,您在此处未使用该变量(请注意_
并不代表Python的任何特殊内容,这只是约定)]for _ in range(N)
是执行N
次的快速方法。list.append
添加到列表=)关于样式的几点说明:
for
循环内定义列表,在这种情况下,如果要让它存储值,请在q=[]
循环中批准for循环的多次迭代。q
既用于存储随机数也用作列表。添加到列表的方式:
append()
对象的list
功能将值附加到list
+
运算符以将新值连接到原始列表所以,这就是我如何更改您的代码:
首先在循环外定义列表:
import random
e = []
在for循环中,使用append()
函数将值添加到主列表e
:
for x in range(0,100):
q=random.randint(0,99)
w=random.randint(0,99)
e_val=q*w # new local variable that resets at each iteration of the loop
e.append(e_val)
print '%s * %s = %s'%(q,w,e_val)
或者,您也可以将e.append(e_val)
行替换为以下内容:
e += [e_val]
我的名字叫Zach Hubbard,请帮助我,他让我困在地下室,唯一允许做的是python。请让我出去...