qq404574811 发表于 2020-4-27 02:13:33

python第四讲里九九乘法表 i 为什么没有到10?

想问 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

ouyunfu 发表于 2020-4-27 02:57:31

range(1,10)包括1但不包括10

Judie 发表于 2020-4-27 05:52:05

本帖最后由 Judie 于 2020-4-26 16:58 编辑

range(0,10) 是 没有10 没有10 没有 10

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


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

标答

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

注释

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

函数语法:
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)

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

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

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

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

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

#以此类推




qq404574811 发表于 2020-4-27 06:43:00

Judie 发表于 2020-4-27 05:52
range(0,10) 是 没有10 没有10 没有 10

'''


幡然醒悟! 这下彻底明白了,原来是我没有搞懂range的用法,现在懂了,谢谢谢谢!
页: [1]
查看完整版本: python第四讲里九九乘法表 i 为什么没有到10?