for循环中的语法解释?

2024-04-25 20:41:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着做projecteuler上的一些问题,我得到了一个平方和和和的平方。我不想用暴力来强迫它,所以我找到了解决办法,那就是:

sum1 = 0
sum2 = 0

for i in ((x,x ** 2) for x in range(1,100+1)):
    sum1 += i[0]
    sum2 += i[-1]

print(sum1 ** 2 - sum2)

我得不到:

^{pr2}$

我在另一个javascript代码高尔夫解决方案中也看到了这一点。这是一种特定的语法,还是一种不熟悉的常规方式?有人能解释一下吗?在


Tags: 代码infor语法rangejavascript解决方案常规
1条回答
网友
1楼 · 发布于 2024-04-25 20:41:28

当遇到复杂的语法时,添加print语句。在

for i in ((x,x ** 2) for x in range(1,100+1)):
    print i

不太有用。在

试试这个。在

^{pr2}$

有帮助吗?也许 吧。在

试试这个:

^{3}$

嗯,for i in a循环也停止工作。这个生成器对象似乎只做了一次。在for循环中或在list()(或tuple())函数中,但不能同时在这两者中。在

试试这个。在

 for x in range(1,100+1): 
      print x, x**2

好吧。那么,我们学到了什么?在

((x,x ** 2) for x in range(1,100+1))是一个生成器表达式。http://www.python.org/dev/peps/pep-0289/

它是“iterable”,可以用在for语句或list()函数中。在

此外,我们还学习了添加print语句来探索令人困惑的语法。在

相关问题 更多 >