首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >理解python中的循环w/ range

理解python中的循环w/ range
EN

Stack Overflow用户
提问于 2019-07-25 17:24:59
回答 4查看 81关注 0票数 1

我不明白循环w/范围..。

...in的问题1,问题2的答案是混乱的.

问题1:以下代码段末尾的j值是多少?

代码语言:javascript
复制
j = 0
for i in range(0, 4):
   j = j + i

问题2:

代码语言:javascript
复制
j = 0
for i in range(1, 10):
   if j < 10 :
      j = j + i

问题1:

答覆:6

J= (j+1)+(j+2)+(j+3)

问题2:

答: 10

我的回答是?

为什么不是j=(j+1)+(j+2).(j+9)?

(我不明白这里"if j<10“的表达式是什么。)

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2019-07-25 17:38:36

代码语言:javascript
复制
j = 0
for i in range(1, 10):
   if j < 10 :
      j = j + i

外部" for“循环一直执行,直到它耗尽i的范围为止。在每个外循环上,j被求值以查看它是否小于10。如果是,j在该循环上增加i的值。在第四个循环中,j变成10,并在其余的执行过程中保持该值。

代码语言:javascript
复制
loop        j    i   j(end)
1           0    1   1
2           1    2   3
3           3    3   6
4           6    4   10
5           10   5   10
6           10   6   10
7           10   7   10
8           10   8   10
9           10   9   10
<end>
票数 2
EN

Stack Overflow用户

发布于 2019-07-25 17:32:28

我想你对死刑的执行顺序有误解。循环的每一次迭代都会对语句if j < 10 :进行评估。因此,在第4次迭代之后,由于if语句为false,j不会增加。

票数 2
EN

Stack Overflow用户

发布于 2019-07-25 17:32:24

这是一个简单的逻辑问题。在问题2中,只有当j =j + i被执行时才会执行j < 10

在第一次运行之后,我们有j= (j+1) =1(因为j最初是0)。

第二次运行后,我们有j= (j+1) + (j+2) =3

第四次运行后,j= (j+1) + (j+2) + (j+3) + (j+4) = 10

由于j不再小于10,if条件意味着此时不再向j添加进一步的i

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57207280

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档