python中用for循环与while循环打印三交形,乘法表

一,案例

1,右侧三角形 # for in range 循环

先确定行号正序

在确定每一行打印数字(最大行号,最小0,每个数依次减1)

在确定空格数量(从1开始,9减行号,再加1)

for r in range(1,10):
    for g in range(1, 9-r+1):
        print(' ',end=' ')
    for j in range(r, 0, -1 ):
        print(j, end=' ')
​
    print()    
    
                        1  
                     2  1  
                  3  2  1  
               4  3  2  1  
            5  4  3  2  1  
         6  5  4  3  2  1  
      7  6  5  4  3  2  1  
   8  7  6  5  4  3  2  1  
9  8  7  6  5  4  3  2  1 
​
#右侧倒三角形
​
for e in range(9,0,-1):
    for k in range(1,9-e+1):
        print('  ',end=' ')
    for r in range(e,0,-1):
        print(r,end='  ')
    print()
    
9  8  7  6  5  4  3  2  1  
   8  7  6  5  4  3  2  1  
      7  6  5  4  3  2  1  
         6  5  4  3  2  1  
            5  4  3  2  1  
               4  3  2  1  
                  3  2  1  
                     2  1  
                        1  
​

2,左侧三角形

for r in range(1,10):
    for e in range(1,r,+1):
        print(e,end='   ')
    print(r)
    
1
1   2
1   2   3
1   2   3   4
1   2   3   4   5
1   2   3   4   5   6
1   2   3   4   5   6   7
1   2   3   4   5   6   7   8
1   2   3   4   5   6   7   8   9    

是否是

for r in range(9,0,-1):
    for e in range(1,r):
        print(e,end='   ')
    print(r)
    
1   2   3   4   5   6   7   8   9
1   2   3   4   5   6   7   8
1   2   3   4   5   6   7
1   2   3   4   5   6
1   2   3   4   5
1   2   3   4
1   2   3
1   2
1    

二,while 循环

1,右侧正三角形

先确定行号变量,和他的增减

在确定每一行打印数字的变量,最大数字,和他的增减

在确定空格数量,从哪开始,到哪里结束,和他的增减

a=1
while a<=9:
    c = 1
    while c<=9-a:
        print(' ',end=' ' )
        c+=1
    b=a
    while b>=1:
        print(b,end=' ')
        b-=1
    print()
    a+=1
                                1   
                            2   1   
                        3   2   1   
                    4   3   2   1   
                5   4   3   2   1   
            6   5   4   3   2   1   
        7   6   5   4   3   2   1   
    8   7   6   5   4   3   2   1   
9   8   7   6   5   4   3   2   1   
   
a=9
while a>=1:
    c=a
    while c<=9:
        print('   ',end=' ')
        c+=1
    b=a
    while b>=1:
        print(b,end='   ')
        b-=1
    print()
    a-=1
    
    9   8   7   6   5   4   3   2   1   
        8   7   6   5   4   3   2   1   
            7   6   5   4   3   2   1   
                6   5   4   3   2   1   
                    5   4   3   2   1   
                        4   3   2   1   
                            3   2   1   
                                2   1   
                                    1       

2,左侧三角形

a=1
while a<=9:
    b=1
    while b<=a:
         print(b,end='   ')
         b+=1
    print()
    a+=1
    
1   
1   2   
1   2   3   
1   2   3   4   
1   2   3   4   5   
1   2   3   4   5   6   
1   2   3   4   5   6   7   
1   2   3   4   5   6   7   8   
1   2   3   4   5   6   7   8   9       

是否

a=9
while a>=1:
    b=1
    while b<=a:
        print(b,end=' ')
        b+=1
    print()
    a-=1
    
1   2   3   4   5   6   7   8   9   
1   2   3   4   5   6   7   8   
1   2   3   4   5   6   7   
1   2   3   4   5   6   
1   2   3   4   5   
1   2   3   4   
1   2   3   
1   2   
1       

三,九九乘法表

1,先写行数

2,在打印每一行的数字

3,用格式化输出,填入相乘的数值,并加上水平制表符

​
    for a in range(1,10):
    for b in range(1,a+1):
        print('{}x{}={}'.format(b,a,b*a),end=' ')
    print()
 
1x1=1 
1x2=2 2x2=4 
1x3=3 2x3=6 3x3=9 
1x4=4 2x4=8 3x4=12 4x4=16 
1x5=5 2x5=10 3x5=15 4x5=20 5x5=25 
1x6=6 2x6=12 3x6=18 4x6=24 5x6=30 6x6=36 
1x7=7 2x7=14 3x7=21 4x7=28 5x7=35 6x7=42 7x7=49 
1x8=8 2x8=16 3x8=24 4x8=32 5x8=40 6x8=48 7x8=56 8x8=64 
1x9=9 2x9=18 3x9=27 4x9=36 5x9=45 6x9=54 7x9=63 8x9=72 9x9=81    

for a in range(9,0 ,-1):
    for b in range(1,a+1):
        print('{}x{}={}'.format(b, a, b * a), end=' ')       
    print()
    
1x9=9 2x9=18 3x9=27 4x9=36 5x9=45 6x9=54 7x9=63 8x9=72 9x9=81 
1x8=8 2x8=16 3x8=24 4x8=32 5x8=40 6x8=48 7x8=56 8x8=64 
1x7=7 2x7=14 3x7=21 4x7=28 5x7=35 6x7=42 7x7=49 
1x6=6 2x6=12 3x6=18 4x6=24 5x6=30 6x6=36 
1x5=5 2x5=10 3x5=15 4x5=20 5x5=25 
1x4=4 2x4=8 3x4=12 4x4=16 
1x3=3 2x3=6 3x3=9 
1x2=2 2x2=4 
1x1=1      
     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值