美文网首页Python全栈工程师
7.1-99乘法表各种实现

7.1-99乘法表各种实现

作者: BeautifulSoulpy | 来源:发表于2019-08-07 22:05 被阅读1次

    每一位成功者的背后都有一个鲜为人知的故事,都要面对黎明前的黑暗,当一个人面临困境的时候,坚持一下,再坚持一下,成功就在前面等着你!


    解决问题很厉害的人,一定是编程高手!

    三元表达式
    print(a) if a > b else print(b)
    

    练习1:给一个半径,求圆的面积和周长。圆周率为3.14

    pi=3.14
    r=float(input('>>>'))
    area=pi*(r**2)
    
    cr=2*pi*r
    print(area,cr)
    

    练习2:输入两个数,比较大小后,从小到大升序打印;

    #
    num1=int(input('>>>'))
    num2=int(input('>>>'))
    
    if num1 > num2:
        print(num2,num1)
    else:
        print(num1,num2)
    

    练习3:获取最大值:依次输入若干个整数,打印出最大值,如果输入为空,则退出程序;

    #思路1:记录用户输入,利用list
    list = []
    flag = True
    
    while flag:
        val = (input('>>>'))
        if val == '':
            flag = False
            continue
        list.append(val)
    print(list)
    max(list)
    
    #思路2:常规思路,只要最大值;
    

    练习4:输入n个数,求每次输入后的算术平均数;

    count = 0
    sum = 0
    
    while True:
        num = int(input('>>>'))
        count += 1
        sum += num 
        print('Avg = ',sum / count)
    

    99乘法表

    总结:
    1.print函数的用法; print(value,...,seq=' ',end='\n');8个字符为一个整体
    循环中加line\print()  可以等同于 print(end=' ') ;
    
    8个字符为一个整体
    print(1,2,1000,sep='@',end='\t')
    print(3)
    print(4)
    ----------------------------------------
    1@2@1000    3
    4
    
    # 思路1:最基础原始的写法
    for i in range(1,10):
        line = ''
        for j in range(1,i+1):
            line += str(j)+'*'+str(i)+'='+str(i*j)+'\t'
        print(line)
    ---------------------------------------------------
    1*1=1   
    1*2=2   2*2=4   
    1*3=3   2*3=6   3*3=9   
    1*4=4   2*4=8   3*4=12  4*4=16  
    1*5=5   2*5=10  3*5=15  4*5=20  5*5=25  
    1*6=6   2*6=12  3*6=18  4*6=24  5*6=30  6*6=36  
    1*7=7   2*7=14  3*7=21  4*7=28  5*7=35  6*7=42  7*7=49  
    1*8=8   2*8=16  3*8=24  4*8=32  5*8=40  6*8=48  7*8=56  8*8=64  
    1*9=9   2*9=18  3*9=27  4*9=36  5*9=45  6*9=54  7*9=63  8*9=72  9*9=81  
    #缺点:可能没对齐
    
    # 思路2:for循环
    for i in range(1,10):
        for j in range(1,i+1):
            print("{}*{}={}\t".format(j,i,i*j),end='')
        print()
    ----------------------------------------------------------------
    1*1=1   
    1*2=2   2*2=4   
    1*3=3   2*3=6   3*3=9   
    1*4=4   2*4=8   3*4=12  4*4=16  
    1*5=5   2*5=10  3*5=15  4*5=20  5*5=25  
    1*6=6   2*6=12  3*6=18  4*6=24  5*6=30  6*6=36  
    1*7=7   2*7=14  3*7=21  4*7=28  5*7=35  6*7=42  7*7=49  
    1*8=8   2*8=16  3*8=24  4*8=32  5*8=40  6*8=48  7*8=56  8*8=64  
    1*9=9   2*9=18  3*9=27  4*9=36  5*9=45  6*9=54  7*9=63  8*9=72  9*9=81  
    
    去掉没对齐的地方
    #思路1:常规写法
    for i in range(1,10):
        line = ''
        for j in range(1,i+1):
            pro=i*j
            if j > 1 and pro < 10:
                pro = str(pro) + '  '
            else:
                pro = str(pro) + ' '
            line += str(j) + '*' + str(i) + '=' + pro
        print(line)
    
    
    思路2:format  :函数默认右对齐,加<左对齐;
    for i in range(1,10):
        for j in range(1,i+1):
            print("{}*{}={:<2}".format(j,i,i*j),end=' ')
    # {:<2} 表示i*j的数值占两个字符位;并左对齐;
        print()
    -----------------------------------------
    1*1=1  
    1*2=2  2*2=4  
    1*3=3  2*3=6  3*3=9  
    1*4=4  2*4=8  3*4=12 4*4=16 
    1*5=5  2*5=10 3*5=15 4*5=20 5*5=25 
    1*6=6  2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 
    1*7=7  2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 
    1*8=8  2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 
    1*9=9  2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81 
    
    #思路四:解决上面不规整的问题;第一列间隔多一个字符;
    for i in range(1,10):
        for j in range(1,i+1):
            if j < 2:
                print("{}*{}={:<2}".format(j,i,i*j),end=' ')
            else:
                print("{}*{}={:<3}".format(j,i,i*j),end=' ')
        print()
    
    #思路四:简易写法
    for i in range(1,10):
        for j in range(1,i+1):
            print("{}*{}={:<{}}".format(j,i,i*j,2 if j<2 else 3),end=' ')   #表达式可以放进去;
        print()
    -----------------------------------------------------------------------
    1*1=1  
    1*2=2  2*2=4   
    1*3=3  2*3=6   3*3=9   
    1*4=4  2*4=8   3*4=12  4*4=16  
    1*5=5  2*5=10  3*5=15  4*5=20  5*5=25  
    1*6=6  2*6=12  3*6=18  4*6=24  5*6=30  6*6=36  
    1*7=7  2*7=14  3*7=21  4*7=28  5*7=35  6*7=42  7*7=49  
    1*8=8  2*8=16  3*8=24  4*8=32  5*8=40  6*8=48  7*8=56  8*8=64  
    1*9=9  2*9=18  3*9=27  4*9=36  5*9=45  6*9=54  7*9=63  8*9=72  9*9=81 
    
    

    99乘法表反向打印

    相关文章

      网友评论

        本文标题:7.1-99乘法表各种实现

        本文链接:https://www.haomeiwen.com/subject/xekzdctx.html