Skip to main content
 首页 » 编程设计

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

2025年05月04日18三少

我正在挑战 Project Euler 以更好地掌握 Python(我是初学者)并且我正在尝试做 Problem 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) 

我尝试了很多方法来让 lista/listb/listc 的值从 1 到 1000,但它们似乎都不起作用

lista = range(1, 1000) 
lista = range[1, 1000] 

等等

请您参考如下方法:

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

Python 2.x

# python 2.x 
liasta = range(1, 1001) 

Python 3.x

# python 3.x 
liasta = list(range(1, 1001)) 

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

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

来自 doc page 的三个示例:

>>> 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]