我正在尝试将下面的Haskell代码移植到Python中,并收到一个“无效语法”响应。你知道吗
let rightTriangles' = [ (a,b,c) | c <- [1..10], b <- [1..c], a <- [1..b], a^2 + b^2 == c^2, a+b+c == 24]
我的失败尝试如下:
[(i,j,k) for i in range(1,11) for j in range(1,i+1) for k in range(1,j+1) if i**2 + j**2 == k**2 i + j + k == 24]
Python 3.4.4版
您可能正在寻找:
请注意,在范围表示法中需要一个逗号,条件之间需要一个
and
,并且(从第一个条件判断)k
应该是三个条件中最大的一个,因此选择范围的方式应该是i <= j <= k
。你知道吗i < j < k
将为您节省一些不必要的迭代,因为我们知道斜边严格地比没有等边勾股三角形的边长。你知道吗相关问题 更多 >
编程相关推荐