python一句代码打印10行_用5行Python代码打印九九乘法表

今天来个小练习,用 5 行 python 代码打印九九乘法表。

分析问题

九九乘法表是有一定的规律,每一行的等式里面,第一位数从 1 开始递增,第二位数保持不变,每一列的等式里面,第一位为当前的列数,第二位从当前的列数开始递增,可以使用 Python 中的循环语句来处理。

解决问题需要具备的相关知识

for 循环语句的表现形式为 for ... in ... range(i) 函数表示生成一个从0到i-1的整数序列,其规则为取头不取尾 for i in range(1,10) 就是将 1,2,3,4,5,6,7,8,9 依次辅助给 i

# 通过print将数据逐个打印出来for i in range(10):    print(i)
0123456789
# 使用i控制行数for i in range(1,4): # 使用j控制列数,给i赋值的基础上给j赋值    for j in range(1,i+1):         print(i,j)
1 12 12 23 13 23 3

翻译成文字来解释说明 当 i=1 时,j取 (1,2) ,此时j的值为1 当 i=2 时,j取 (1,3), 此时j的值为 1,2 当i=3时,j取( 1,4),此时 j 的值为1,2,3 ...... 当 i=9 时,j 取(1,10),此时j的值为1,2,3,4,5,6,7,8,9

尝试解决问题的一部分

# 我们先试着打印九九乘法表前三行数据来看下for i in range(1,4):     for j in range(1,i+1):         print('%d x %d = %d' %(j,i,i*j)) # %d代表格式化的意思,代表填充整数到指定位置
1 x 1 = 11 x 2 = 22 x 2 = 41 x 3 = 32 x 3 = 63 x 3 = 9

细心的同学会发现我们打印出来的数据全部都换行了,解决这个问题只需在print 中加一个end函数就可以啦,end = “ ”的意思就是在每个计算的结尾处加个空格。

for i in range(1,4):     for j in range(1,i+1):         print('%d x %d = %d' %(j,i,i*j),end=' ')
1 x 1 = 1 1 x 2 = 2 2 x 2 = 4 1 x 3 = 3 2 x 3 = 6 3 x 3 = 9

加入end函数后所有的等式又全部挤到一行去了,观察九九乘法表中每一行的最后一个式子会发现换行的依据是i=j,再次添加if条件看下效果。

for i in range(1,4):     for j in range(1,i+1):         print('%d x %d = %d' %(j,i,i*j),end=' ')         if i==j:            print(' ')
1 x 1 = 1  1 x 2 = 2 2 x 2 = 4  1 x 3 = 3 2 x 3 = 6 3 x 3 = 9

最终九九乘法表

for i in range(1,10):     for j in range(1,i+1):         print('%d x %d = %d' %(j,i,i*j),end=' ')         if i==j:            print(' ')
1 x 1 = 1  1 x 2 = 2 2 x 2 = 4  1 x 3 = 3 2 x 3 = 6 3 x 3 = 9  1 x 4 = 4 2 x 4 = 8 3 x 4 = 12 4 x 4 = 16  1 x 5 = 5 2 x 5 = 10 3 x 5 = 15 4 x 5 = 20 5 x 5 = 25  1 x 6 = 6 2 x 6 = 12 3 x 6 = 18 4 x 6 = 24 5 x 6 = 30 6 x 6 = 36  1 x 7 = 7 2 x 7 = 14 3 x 7 = 21 4 x 7 = 28 5 x 7 = 35 6 x 7 = 42 7 x 7 = 49  1 x 8 = 8 2 x 8 = 16 3 x 8 = 24 4 x 8 = 32 5 x 8 = 40 6 x 8 = 48 7 x 8 = 56 8 x 8 = 64  1 x 9 = 9 2 x 9 = 18 3 x 9 = 27 4 x 9 = 36 5 x 9 = 45 6 x 9 = 54 7 x 9 = 63 8 x 9 = 72 9 x 9 = 81

解法不是唯一的,使用 while 循环也可以达到相同的效果。

i = 1while i <= 9:    j = 1    while j <= i:        print('%d X %d = %d' % (j,i,i*j),end = '  ')         j += 1    print('')    i += 1
1 X 1 = 1  1 X 2 = 2  2 X 2 = 4  1 X 3 = 3  2 X 3 = 6  3 X 3 = 9  1 X 4 = 4  2 X 4 = 8  3 X 4 = 12  4 X 4 = 16  1 X 5 = 5  2 X 5 = 10  3 X 5 = 15  4 X 5 = 20  5 X 5 = 25  1 X 6 = 6  2 X 6 = 12  3 X 6 = 18  4 X 6 = 24  5 X 6 = 30  6 X 6 = 36  1 X 7 = 7  2 X 7 = 14  3 X 7 = 21  4 X 7 = 28  5 X 7 = 35  6 X 7 = 42  7 X 7 = 49  1 X 8 = 8  2 X 8 = 16  3 X 8 = 24  4 X 8 = 32  5 X 8 = 40  6 X 8 = 48  7 X 8 = 56  8 X 8 = 64  1 X 9 = 9  2 X 9 = 18  3 X 9 = 27  4 X 9 = 36  5 X 9 = 45  6 X 9 = 54  7 X 9 = 63  8 X 9 = 72  9 X 9 = 81
fa55314d3994597311251a6715a619bb.png

e076fa35352019a50c8a01ce1c98089f.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值