鱼C论坛

 找回密码
 立即注册
查看: 1471|回复: 3

[已解决]python第四讲里九九乘法表 i 为什么没有到10?

[复制链接]
发表于 2020-4-27 02:13:33 | 显示全部楼层 |阅读模式

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

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

x
想问 i 的range不是1到10吗? 为什么最后一行不是10*j?
而且j=i+1,那么最后一次的 j 也应等于9*10呀,为什么也没有显示呢?


代码是这样写的

>>> for i in range(1, 10):
...     for j in range(1, i+1):
...         print(i, "x", j, "=", i * j, end=' ')
...     print("\n")

显示是
1 x 1 = 1

2 x 1 = 2 2 x 2 = 4

3 x 1 = 3 3 x 2 = 6 3 x 3 = 9

4 x 1 = 4 4 x 2 = 8 4 x 3 = 12 4 x 4 = 16

5 x 1 = 5 5 x 2 = 10 5 x 3 = 15 5 x 4 = 20 5 x 5 = 25

6 x 1 = 6 6 x 2 = 12 6 x 3 = 18 6 x 4 = 24 6 x 5 = 30 6 x 6 = 36

7 x 1 = 7 7 x 2 = 14 7 x 3 = 21 7 x 4 = 28 7 x 5 = 35 7 x 6 = 42 7 x 7 = 49

8 x 1 = 8 8 x 2 = 16 8 x 3 = 24 8 x 4 = 32 8 x 5 = 40 8 x 6 = 48 8 x 7 = 56 8 x 8 = 64

9 x 1 = 9 9 x 2 = 18 9 x 3 = 27 9 x 4 = 36 9 x 5 = 45 9 x 6 = 54 9 x 7 = 63 9 x 8 = 72 9 x 9 = 81
最佳答案
2020-4-27 05:52:05
本帖最后由 Judie 于 2020-4-26 16:58 编辑

range(0,10) 是 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 没有10 没有10 没有 10

'''
【朱迪的手写学习笔记 之 零基础入门学习Python】004
  https://fishc.com.cn/thread-153604-1-1.html
  (出处: 鱼C论坛)
'''



1. 打印一个九九乘法表。

标答

  1. >>> for i in range(1, 10):
  2. ...     for j in range(1, i+1):
  3. ...         print(i, "x", j, "=", i * j, end=' ')
  4. ...     print("\n")
复制代码


注释

range() 函数可创建一个整数列表,一般用在 for 循环中。

函数语法:
  1. range(start, stop[, step])
复制代码


参数说明:
start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)

range()是一个函数, for i in range () 就是给i赋值:
比如 for i in range (1,3):
就是把1,2依次赋值给i

例如,range(1,5)给出序列[1, 2, 3, 4]。默认情况下,range 步距取为1。如果我们提供第三个数字,range那么它变成了步距。例如range(1,5,2)得到[1,3]。
for循环然后遍历这个范围,for i in range(1,5)相当于 for i in [1, 2, 3, 4],这就像把序列中的每一个数(或对象)分配给i,一次一个,然后为每个i值执行该语句块。

  1. for i in range(1,10): # i = 1,2,3,4,5,6,7,8,9
  2.     for j in range(1,i+1):
  3.         print(i,"x",j,"=",i*j,end=" ")
  4.     print('\n')

  5. # 第一次i的for循环 即 i=1
  6. # for j in range (1,i+1) 即 for j in range(1,2) 即 j=1
  7. # 第一次j的for循环 即 j=1
  8. # print(i,"x",j,"=",i*j,end=" ") 即 print(1,"x",1,"=",i*j,end=" ") 即 打印1 x 1 = 1空格结尾
  9. # j的for循环结束
  10. # print('\n') 另起一行

  11. # 第二次i的for循环 即 i=2
  12. # for j in range (1,i+1) 即 for j in range(1,3) 即 j= 1,2
  13. # 第一次j的for循环 即 j=1
  14. # print(i,"x",j,"=",i*j,end=" ") 即 print(2,"x",1,"=",i*j,end=" ") 即 打印2 x 1 = 2空格结尾
  15. # 第二次j的for循环 即 j=2
  16. # print(i,"x",j,"=",i*j,end=" ") 即 print(2,"x",2,"=",i*j,end=" ") 即 打印2 x 2 = 4空格结尾
  17. # j的for循环结束
  18. # print('\n') 另起一行

  19. #以此类推
复制代码




评分

参与人数 1荣誉 +2 鱼币 +2 贡献 +2 收起 理由
重新定义 + 2 + 2 + 2 感谢楼主无私奉献!

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-4-27 02:57:31 | 显示全部楼层
range(1,10)包括1但不包括10
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-27 05:52:05 | 显示全部楼层    本楼为最佳答案   
本帖最后由 Judie 于 2020-4-26 16:58 编辑

range(0,10) 是 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 没有10 没有10 没有 10

'''
【朱迪的手写学习笔记 之 零基础入门学习Python】004
  https://fishc.com.cn/thread-153604-1-1.html
  (出处: 鱼C论坛)
'''



1. 打印一个九九乘法表。

标答

  1. >>> for i in range(1, 10):
  2. ...     for j in range(1, i+1):
  3. ...         print(i, "x", j, "=", i * j, end=' ')
  4. ...     print("\n")
复制代码


注释

range() 函数可创建一个整数列表,一般用在 for 循环中。

函数语法:
  1. range(start, stop[, step])
复制代码


参数说明:
start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)

range()是一个函数, for i in range () 就是给i赋值:
比如 for i in range (1,3):
就是把1,2依次赋值给i

例如,range(1,5)给出序列[1, 2, 3, 4]。默认情况下,range 步距取为1。如果我们提供第三个数字,range那么它变成了步距。例如range(1,5,2)得到[1,3]。
for循环然后遍历这个范围,for i in range(1,5)相当于 for i in [1, 2, 3, 4],这就像把序列中的每一个数(或对象)分配给i,一次一个,然后为每个i值执行该语句块。

  1. for i in range(1,10): # i = 1,2,3,4,5,6,7,8,9
  2.     for j in range(1,i+1):
  3.         print(i,"x",j,"=",i*j,end=" ")
  4.     print('\n')

  5. # 第一次i的for循环 即 i=1
  6. # for j in range (1,i+1) 即 for j in range(1,2) 即 j=1
  7. # 第一次j的for循环 即 j=1
  8. # print(i,"x",j,"=",i*j,end=" ") 即 print(1,"x",1,"=",i*j,end=" ") 即 打印1 x 1 = 1空格结尾
  9. # j的for循环结束
  10. # print('\n') 另起一行

  11. # 第二次i的for循环 即 i=2
  12. # for j in range (1,i+1) 即 for j in range(1,3) 即 j= 1,2
  13. # 第一次j的for循环 即 j=1
  14. # print(i,"x",j,"=",i*j,end=" ") 即 print(2,"x",1,"=",i*j,end=" ") 即 打印2 x 1 = 2空格结尾
  15. # 第二次j的for循环 即 j=2
  16. # print(i,"x",j,"=",i*j,end=" ") 即 print(2,"x",2,"=",i*j,end=" ") 即 打印2 x 2 = 4空格结尾
  17. # j的for循环结束
  18. # print('\n') 另起一行

  19. #以此类推
复制代码




小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-4-27 06:43:00 | 显示全部楼层
Judie 发表于 2020-4-27 05:52
range(0,10) 是 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 没有10 没有10 没有 10

'''

幡然醒悟! 这下彻底明白了,原来是我没有搞懂range的用法,现在懂了,谢谢谢谢!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-18 05:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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