将range()的结果存储为列表变量-Python

cjm*_*cjm 1 python python-2.7

我正在对Euler项目进行挑战,以提高python的水平(我是一个初学者),并且正在尝试做问题9

vara = lista[-1]
varb = listb[-1]
varc = listc[-1]

while not(vara < varb < varc):
listb.pop(-1)
lista.pop(-1)
lista.pop(-1)
if ((vara * vara) + (varb * varb) == varc * varc):
    print vara, varb, varc
else:
listc.pop(-1)
if ((vara * vara) + (varb * varb) == varc * varc):
    print vara, varb, varc
else:
    listb.pop(-1)
    if ((vara * vara) + (varb * varb) == varc * varc):
        print vara, varb, varc
    else:
        lista.pop(-1)
Run Code Online (Sandbox Code Playgroud)

我尝试了很多方法来使lista / listb / listc的值在1-1000之间,但是它们似乎都不起作用

lista = range(1, 1000)
lista = range[1, 1000]
Run Code Online (Sandbox Code Playgroud)

等任何帮助将不胜感激,谢谢:)

Lev*_*von 5

要生成从1到1000的值,您需要将结束值指定为1000 + 1,即1001。因此

Python 2.x

# python 2.x
liasta = range(1, 1001)
Run Code Online (Sandbox Code Playgroud)

Python 3.x

# python 3.x
liasta = list(range(1, 1001))
Run Code Online (Sandbox Code Playgroud)

将为您提供1到1000之间的值列表。

range()使用半闭区间,这意味着它在生成的值列表中包括第一个值,但不包括最后一个值。请注意,如果您未指定起始值,range()则默认为0。您也可以指定一个增量值,1除非另有说明,否则默认为默认值。

doc页面中的三个示例:

>>> range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> range(1, 11)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

>>> range(0, 30, 5)
[0, 5, 10, 15, 20, 25]
Run Code Online (Sandbox Code Playgroud)