python新手求助
刚学完小甲鱼第四讲(这个是课后作业),请问一下,为什么下面这行代码为啥会打印出来99乘法表。for i in range(1, 10):
for j in range(1, i+1):
print(i, "x", j, "=", i * j, end=' ')
print("\n")
这不是范围一到十吗,为什么是99乘法表。。。。{:5_107:} range的范围包括头但不包括尾,range(1,10)的范围其实是1-9
>>> for i in range(1,10):
... print(i)
...
1
2
3
4
5
6
7
8
9 “x”“=”是字符不是运算符,另外俩循环的缩进不一致,运行次序不是一致的,比如i=5,j循环就是要1-5 函数语法
range(start, stop[, step])
参数说明:
start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是没有5
step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1) 临时号 发表于 2022-7-12 19:35
range的范围包括头但不包括尾,range(1,10)的范围其实是1-9
那如果这样的话,range(1,i+1),的范围其实是1-10咯,那这样的话后面打印i*j的话应该是1-9乘1-10啊,为啥是99乘法表。。。(我不是杠精,我真的就是想知道到底是怎么事{:5_100:}) 青出于蓝 发表于 2022-7-12 20:22
函数语法
range(start, stop[, step])
参数说明:
请问这段代码的话是用的range(stop)吗 1822989620 发表于 2022-7-12 20:26
那如果这样的话,range(1,i+1),的范围其实是1-10咯,那这样的话后面打印i*j的话应该是1-9乘1-10啊, ...
没有啊
i不是最大可以取到9吗
也就是说range(1,i+1)按i最大的情况来算的话就是range(1,9+1),也就是range(1,10),上面提过range(1,10)最大只能取到9,即j最大能取到9 临时号 发表于 2022-7-12 20:30
没有啊
i不是最大可以取到9吗
也就是说range(1,i+1)按i最大的情况来算的话就是range(1,9+1),也就是rang ...
啊,我应该懂了,也就是说就算j的实际范围是1-10,但是他也只能取到9.所以说,for j in range(1, i+1)=for j in range(1, 10),是这样吗大佬{:5_108:} 函数语法
range(start, stop[, step])
参数说明:
start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是没有5
step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
这里只有start stop两个参数 1822989620 发表于 2022-7-12 20:43
啊,我应该懂了,也就是说就算j的实际范围是1-10,但是他也只能取到9.所以说,for j in range(1, i+1)=fo ...
不
刚刚的一切都是建立在i取最大值9的基础上,如果i取3,则for j in range(1,4),j最高可以取到3
所以不能说for j in range(1, i+1)=for j in range(1, 10)
你要这样说就必须有i=9,也就是i去最大值这个前提 1822989620 发表于 2022-7-12 20:26
那如果这样的话,range(1,i+1),的范围其实是1-10咯,那这样的话后面打印i*j的话应该是1-9乘1-10啊, ...
i in rang(1,10) i的最大值是9,rang(1,i+1)带入一下不就是rang(1,9+1)吗?范围也是1-9
页:
[1]