0

好的,在此之后不再有任何问题:

import random

lotto = [0, 0, 0, 0, 0, 0, 0, 0]
index = 0

while index <= 6:
    lotto[index] = random.randrange(1, 9)
    index = index + 1
    print("Lotto number",index,"is",lotto[index],"!")

我似乎无法找到为什么这些序列元素不会被修改的原因。索引和序列处理得当,但lotto[index] = random.randrange(1, 9)行似乎没用。它根本不会改变序列中的任何内容。我知道我错过了一些东西,但我已经盯着这个东西看了很长时间,只是看不到我在搞砸什么。我已经更改了元素,它正确输出了所有内容,只是不会更改序列元素。哈普斯?

4

1 回答 1

3

您总是在打印时引用下一个元素。只需像这样将打印线与增量线交换

print("Lotto number",index,"is",lotto[index],"!")
index = index + 1

当你打印这样的东西时,你可以使用format函数,像这样

print("Lotto number {} is {} !".format(index, lotto[index]))

除此之外,您可以使用 for 循环和range函数,像这样

for index in range(7):
    lotto[index] = random.randrange(1, 9)
    print("Lotto number", index, "is", lotto[index], "!")

range函数将在每次迭代中给出从 0 到 6 的值,一次一个。

更好的是,您可以使用列表推导创建一个新列表,如下所示

lotto = [random.randrange(1, 9) for index in range(7)]
于 2014-04-28T07:21:40.917 回答