题目:打印出一个99乘法表
for i in range(1,10): #定义一个i的for循环
for j in range(1,i+1): #定义一个j的for循环
print("%d*%d=%d "%(j,i,i*j),end="") #打印i*j=(i*j)的样式,end""的作用是表示还没有结束现在还不用换行
print("") #在执行完一次j的循环后进行换行,print()本身就有换行的作用,所以这里可以省略里面的(/n),也可以直接写成print()
打印结果为:
解题思路:
1、先遍历i的循环,确定每行的1-9的数
for i in range(1,10): #遍历1-9的值
print(i) #打印结果
打印结果为:
2、这时候观察99乘法表,因为i已经实现了每行的一个固定值,还需要在不同的每行都需要有个数和他相乘,第一个行就是1*1 第二行就是1*2 和 2*2,因为i已经可以确定每行是要乘几了,所以在定义一个变量j,在不同的时候和i相乘,就是当i进入到1的循环时,j只能输出1,当i进入到2的循环是,j只能输出1和2,以此类推,当i输出到9时,j只能输出1-9,所以这就能确定j的遍历范围了,因为是随着i变化的,所以j的范围就是range(1,i+1),这里为啥是i+1呢?因为在让中,是前闭后开的,所以范围是想要范围是1到i,在range()函数中就要写成1,i+1。然后让他两相乘看下结果。
for i in range(1,10): #定义一个i的for循环
for j in range(1,10): #根据i的for循环,定义一个j的for循环
print("%d*%d=%d "%(j,i,i*j)) ##打印i*j=(i*j)的样式
输出结果为:
这样能看出所有需要的数据已经都出来了现在需要调节下样式。
3、这时先让他不进行换行,保持在一行输出,因为print默认会执行换行,所以这时候就可以在print()里加上end="",end=""的作用就是表示还没有结束,不执行换行操作。现在再打印看下结果。
for i in range(1, 10): # 定义一个i的for循环
for j in range(1, i + 1): # 定义一个j的for循环
print("%d*%d=%d " % (j, i, i * j), end="") # 打印i*j=(i*j)的样式,end=""的作用是表示还没有结束现在还不用换行
这时候就变成一行的输出了,那怎么才能变成让他按着需求进行换行呢?
4、现在就简单了,因为这个是根据i进行每行的数据打印的,所以在每次在i要进行遍历时,进行换行就行了。
for i in range(1, 10): # 定义一个i的for循环
for j in range(1, i + 1): # 定义一个j的for循环
print("%d*%d=%d " % (j, i, i * j), end="") # 打印i*j=(i*j)的样式,end=""的作用是表示还没有结束现在还不用换行
print("") # 在执行完一次j的循环后进行换行,print()本身就有换行的作用,所以这里可以省略里面的(/n),也可以直接写成print()
打印结果为:
这样就解决了用python输出99乘法表的问题了,对于这个题目还有好几种不同的解法,大家可以尝试用其他方法再试试
下图为公众号二维码,内容会同步发出,大家可以关注一起学习
这个是张狗子小哥哥的公众号,会分享一些平时的工作心得,可以关注看下。