我刚接触Python,想学习如何使用列表推导式。
这是一个打印小于用户输入值n
的勾股三元组列表的代码:
n = int(input("Enter the value of n:"))
a = 0
b = 0
c = 0
m = 2
triples = []
while c < n:
for i in range(1, m, 1):
a = m*m - i*i
b = 2*m*i
c = m*m + i*i
if c > n:
break
triples.append((a, b, c))
m += 1
print(triples)
它有点可行,但我想用Python中的列表推导式来做同样的事情,我们该怎么做?
例如,如果我输入17,则输出应为
[(3,4,5), (8,6,10),(5,12,13), (15,8,17), (9,12,15)]
,然而我没有得到(9,12,15)
。
n
生成(9, 12, 15)
。你需要完全改变你的三元组生成逻辑。 - Arya McCarthy