鱼C论坛

 找回密码
 立即注册
查看: 3110|回复: 5

小甲魚04的課後功課不明白,求同窗幫肋

[复制链接]
发表于 2022-11-24 13:44:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
九九乘法表的一個代碼:
>>> 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那里呢?

請各路大神指教一下小白, 謝謝
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-11-24 13:58:35 | 显示全部楼层
本帖最后由 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'(结束一行,空一行),以便下一次从一个新行的开头开始打印 
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2022-11-24 13:58:36 From FishC Mobile | 显示全部楼层
讲i=1.到9分别代入02行,自己代入一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-24 13:59:22 | 显示全部楼层
哈哈,我也是新人,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,以此类推。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-11-24 15:40:58 | 显示全部楼层
哦, 綜合以上幾位小伙伴的解析, 好像有點明白了
>>> 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入面, 然後按代碼第三行進行運算
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-24 16:51:01 | 显示全部楼层
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")

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-25 13:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表