Python九九乘法表(矩形、上三角、下三角)

一、矩形
实质上这两种方法是一样的,只不过方法一中s的作用相当于方法二中end='  '的作用

#方法一
for i in range(1,10):
    for j in range(1,10):
        print(str.format('{0}*{1}={2}\t',i,j,i*j),end=' ')
    print()
方法二:
for i in range(1,10):
    for j in range(1,10):
        print('{0:1}*{1:1}={2:<2}'.format(i,j,i*j),end=' ')
    print()
方法三:
for i in range(1,10):
    s = ''
    for j in range(1,10):
        s += str.format('{0:1}*{1:1}={2:<2}\t',i,j,i*j)
    print(s)
#方法四:
for i in range(1, 10):             #外循环
    s = ' '
    for j in range(1, 10):         #内循环
        s += str.format("{0:1}*{1:1}={2:<3} ", i, j, i * j)
    print(s)

tip:

(1)print输出的两种形式,一是print('i={0},j={1}'.format(i,j)),二是print(str.format('i={0},j={1}',i,j))在这两个表达式都是用i的值代替{0},用j的值代替{1},因为i表示第0个变量,j表示第1个变量。如果print中有end=' '(注:引号中有空格)表明这一个print与下一个print输出的表达式之间与一个空格连接;如果print中有end=' '(注:引号中无空格)表明这一个print与下一个print输出的表达式之间紧紧挨着,中间无空格连接。

(2){2:<2}表示第2个变量(位于冒号左边的2)占两个空格的位置(位于冒号右边的2),并且左对齐(因为存在“<”,故左对齐;如果不存在“<”,则右对齐)。
如果为{2:2}表示第2个变量(位于冒号左边的2)占两个空格的位置(位于冒号右边的2),默认右对齐。

(3)!!!!!!重要区别:方法一和方法二是通过end=' '(注:引号中有空格)来连接一行中两个不同的式子,两个式子之间存在空格;方法三和方法四是通过s来连接一行中两个不同的式子,两个式子不存在空格。end=''(注:引号中无空格)与s的作用是等价的,只是起到连接的作用,不会使得让一行中两个式子之间存在空格。因此,在方法三相比方法二中倒数第二行多了个'\t',方法四相比方法二把{2:<2}变成了{2:<3}, 方法三和方法四与方法二的差别都是为了弥补s只能一行中两个不同的式子连接而中间并不存在空格的不足。

运行结果:

 二、上三角

#上三角
for i in range(1,10):
    for k in range(1,i):
        print('      ',end=' ')  #单引号中有6个空格,因为倒数第二行输出的内容需要占6个空格的位置
    for j in range(i,10):
        print('{0:1}*{1:1}={2:<2}'.format(i,j,i*j),end=' ')
    print()
#上三角
for i in range(1,10):
    for k in range(1,i):
        print(str.format('     \t'),end='')
    for j in range(i,10):
        print(str.format('{0}*{1}={2}\t',i,j,i*j),end='')
    print('')

运行结果:

 三、下三角

#下三角
for i in range(1,10):
    for j in range(1,i+1):
        print(str.format('{0:1}*{1:1}={2:<2}\t',i,j,i*j),end=' ')
    print('')
#下三角
for i in range(1,10):
    s = ' '
    for j in range(1,i+1):
        s += str.format('{0:1}*{1:1}={2:<3}',i,j,i*j)
    print(s)

运行结果:

  • 26
    点赞
  • 118
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值