小白问个初级作业问题
nums =target = 9
n = len(nums)
for i in range(n):
for j in range(i+1, n),这个循环体怎么理解
我试过把内循环改为range(i),然后分别打印 i 和 j 的值,结果跟我想的不一样,理解不了 以你的代码为例:
n 表示列表长度
i 表示从 0 开始循环至 n(但不包括 n 本身)
j 表示从 i + 1 开始循环至 n(但不包括 n 本身)
举例:
i = 0, j = 1, 2, ..... n-1
i = 1, j = 2, 3, ..... n-1
i = 2, j = 3, 4, ..... n-1
.
.
.
.
.
i = n-1 nums表示一个有“2,7,11,15”这四个元素的列表,target表示值为9的一个变量,
len()这个函数表示对括号里的参数求长度,nums有四个元素,所以n=4
range(n)这个函数表示返回一个列表【0,1,2,3,4......n-1】
range(i+1,n)就表示【i+1,i+2,i+3......n-1】
因为n=4,所以那个循环就可以看成
for i in range(4):
for j in range(i+1, 4)
再把range()函数代入看
for i in :
for j in
然后你这没有输出,我按我的想法加了一个输出
for i in range(n):
print("i=",i)
for j in range(i+1, n):
print("j=",j)
那么输出应该就是
i=0
j=1
j=2
j=3
i=1
j=2
j=3
i=2
j=3
i=3 另外这个代码的知识点就是以下几个:
1.len()函数
2.range()函数
3.for循环的嵌套循环
把他们弄懂了理解这个代码就不难
这些知识点你可以去浏览器搜“菜鸟教程”,在他的“服务端”--“学习python”里看,或者直接在他的搜索框搜索,像函数啥的不懂就可以搜一下,例如搜“python3 len()”之类的 涟漪袅袅 发表于 2021-12-22 16:04
nums表示一个有“2,7,11,15”这四个元素的列表,target表示值为9的一个变量,
len()这个函数表示对括号里 ...
谢谢回答,有一个疑问,如果按照你的公式
for j in range(i+1, n)改为for j in range(i)
打印的结果是
i= 0
i= 1
j= 0
i= 2
j= 0
j= 1
i= 3
j= 0
j= 1
j= 2
那这个答案我是不理解,不应该是
i= 0
j= 0
j= 1
j= 2
i= 1
j= 2
i= 2
i= 3
VinsenX 发表于 2021-12-22 18:14
谢谢回答,有一个疑问,如果按照你的公式
for j in range(i+1, n)改为for j in range(i)
打印的结 ...
range(stop[,step=1])
这个函数有三个参数,其中用中括号括起来的两个表示这两个参数是可选的。
step=1表示第三个参数的默认值是1。(间隔)
range这个函数的作用是生成一个从start参数的值开始到stop参数的值结束的数字序列。(不包含stop参数)
当没有start参数是就默认生成从0开始到stop参数的值结束的数字序列(不包含stop参数)
所以改成for j in range (i)后
for i in range(4):
本帖最后由 涟漪袅袅 于 2021-12-22 18:33 编辑
刚按错了,没写完,下接
for i in range(4):
for j in range(i):
当i=0时,内嵌那个循环就是
for j in range(0)
而stop参数不被包含,所以这里range(0)是没有取值的,自然j也没有取值 还是不理解的话可以看看我之前说的菜鸟教程里的python3range()函数的解释,上面有代码输出图片,可能好理解点 涟漪袅袅 发表于 2021-12-22 18:31
刚按错了,没写完,下接
for i in range(4):
for j in range(i):
啊,看到这里就理解了,0没有取值,转牛角尖了,感谢
页:
[1]