Python全栈工程师

7.1-99乘法表各种实现

2019-08-07  本文已影响1人  BeautifulSoulpy

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


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

三元表达式
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乘法表反向打印

上一篇下一篇

猜你喜欢

热点阅读