小甲魚04的課後功課不明白,求同窗幫肋
九九乘法表的一個代碼:>>> for i in range(1, 10):
... for j in range(1, i+1):
... print(i, "x", j, "=", i * j, end=' ')
... print("\n")
就以上代碼, 01的for和range基本用法都明白
但02的for j in range(1, i+1)是什麼意思呢?
那關於03. i和j的變量如何放入去03那里呢?
請各路大神指教一下小白, 謝謝 本帖最后由 jackz007 于 2022-11-24 14:08 编辑
for i in range(1, 10) : # 外层循环,循环 9 次,循环变量 i = 1、2、3、4、5、6、7、8、9
for j in range(1 , i + 1) : # 内层循环,循环 i 次(i 是行号),例如,第1、2、3行将循环1、2、3次,第 9 行循环 9 次,每循环一次打印一项
print(i, "x", j, "=", i * j, end=' ') # 从上一次打印结束的位置开始继续本次的打印,打印次数由内层循环控制,第1、2、3行分别打印1、2、3项,第 9 行打印 9 项
# print() 5 个逗号隔开了 6 个输入参数,其中,i、j、i * j 是变量及表达式,都是整型数,将会打印数值
# "x"和 "=" 是字符串,将会照原样打印,最后一个参数是命名可选参数 end = ' ',作用是附加一个空格到本次打印内容的末尾
print("\n") # 内层循环结束,本行内容输出完毕,输出两个换行符 '\n'(结束一行,空一行),以便下一次从一个新行的开头开始打印 讲i=1.到9分别代入02行,自己代入一下 哈哈,我也是新人,02里面的for j in range(1,i+1),是指i每一个循环,给j一个范围,而由于range函数特性range(start,stop),stop不会被选中,因此+1;
逐步循环就是i=1的时候,j是range(1,2)选择还是1,相当于乘法表里面的1*1.当1=2的时候,j是让range(1,3)相当于2*1,2*2;同理后续;
03里面如同上一步所说,每次都是固定代入,当1 = 1时,j=1,代入输出;当i=2时,分别输出j =1,j=2,以此类推。 哦, 綜合以上幾位小伙伴的解析, 好像有點明白了
>>> for i in range(1, 10):
... for j in range(1, i+1):
... print(i, "x", j, "=", i * j, end=' ')
... print("\n")
第一行代碼i變量產出: 1, 2, 3, 4, 5, 6, 7, 8, 9
第二行代碼j變量就是由i所生成的range: 分別是(1,2), (1,3), (1,4), (1,5), (1,6), (1,7), (1,8), (1,9), (1,10)
第三行代碼分別是
1. 當i=1, j=1
1x1=1 下一行
2. 當i=2, j=1和2
2x1=1 和 2x2=4 下一行
3. 當i=3, j=1和2和3:
3x1=3 和 3x2=6 和 3x3=9 下一行
4至9 如此類推~
大致意思是外循環i所產出的range分解開來, 分別放到內循環j入面, 然後按代碼第三行進行運算{:5_109:} for i in range(1, 10): #循环1—9的值给i
for j in range(1, i+1): #上一个循环中给了i的值,这个循环就循环1—i+1 的值给j
#列如 i=1时 内循环就循环 1—2 的值给 j,记住i+1 并不改变i的值 i+=1才改变
print(i, "x", j, "=", i * j, end=' ') #在上一行代码中赋值给了j
#列如在第一个内循环中 j=1 ,i=1 所以输出i*j=1的值
#同理在第二个内循环中 j=2 , i=1 所以输出i*j=2
print("\n")
页:
[1]