我正在对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)
等任何帮助将不胜感激,谢谢:)
要生成从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)