九九乘法表的python複習

九九開始的複習

這周複習以前的學的知識關於range函數,gormat函數,print的使用總結一下python

從一個小例子開始,開始個人回顧吧,
你們都是從那個九九乘法表開始的數學之旅,從一一得一,開始了咱們的面向絕望之旅數學之旅json

首先我想到若是要展現出'''
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
'''
個人第一反應,兩個循環 一個負責行的循環 一個負責列的循環,這樣咱們能夠建立兩個函數達到本身的目的
因而有了下面的第一個版本markdown

 1#九九乘法表-v1
2def table():#這個函數負責對行的循環
3    for i in range(1,10):
4        l = tablez_zi(i)
5
6
7
8def tablez_zi(j): #這個函數負責對列的循環
9    j = int(j)
10    for i in range(1,j+1): 
11        k = i*j
12        print('{0}*{1}={2}'.format(i,j,k),end=' ')
13    print('')
14table()
11*1=1 
21*2=2 2*2=4 
31*3=3 2*3=6 3*3=9 
41*4=4 2*4=8 3*4=12 4*4=16 
51*5=5 2*5=10 3*5=15 4*5=20 5*5=25 
61*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 
71*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 
81*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 
91*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 

這是按照需求生成的第一個版本,它知足了我對乘法表的邏輯設計,一個負責生成行,一個負責生成列,是最基礎的版本,跟它在數學的地位同樣,搭建了最基礎也是最重要的地基。app

這裏咱們用到了print()的用法,在print()函數中在後面添加一個'end=',這能夠在打印一串字符時用end=後面的符號連接字符,默認使用回車符號來填充,我這裏爲了可讓他們在同一行,用了空格進行間隔 函數

這裏還用了range()函數,在range()中默認是從0開始的,咱們不須要0,因此從x=1開始,優化

還有拼接字符串的函數format(),下面在具體使用它
固然咱們不可能對這麼簡單的代碼就知足了,而後咱們對它進行優化,第一步先合併成一個函數,for循環裏面疊加一個for循環,最後只用一個函數就能夠解決問題,簡單明瞭。spa

1#九九乘法表-v2
2def table_two():
3    for i in range(1,10):
4        for j in range(1,i+1):
5            k = i*j
6            print('{0}*{1}={2}'.format(j,i,k),end=' ')
7        print('')
8table_two()
11*1=1 
21*2=2 2*2=4 
31*3=3 2*3=6 3*3=9 
41*4=4 2*4=8 3*4=12 4*4=16 
51*5=5 2*5=10 3*5=15 4*5=20 5*5=25 
61*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 
71*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 
81*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 
91*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 

這樣就能夠合併成一個函數執行了,減小了系統產生的資源消耗,可是,有些強迫症的人(好比說我)必定看個3*4=12與3*5=15之間對不齊,感受很難受,特別不舒服,針對這種狀況咱們能夠對代碼進行再一次的修改,調整成整齊的格式,看着更加舒服設計

1#九九乘法表-v3
2def table_three():
3    for i in range(1,10):
4        for j in range(1,i+1):
5            k = i*j
6            print('{0}*{1}={2:<2}'.format(j,i,k),end=' ')
7            #這裏對format函數進行修改,':'後面'<'這個符號是爲了讓字符串向左對其,然後面的那個'2'是爲了將字符串強制控制在2位
8        print('')
9table_three()
11*1=1  
21*2=2  2*2=4  
31*3=3  2*3=6  3*3=9  
41*4=4  2*4=8  3*4=12 4*4=16 
51*5=5  2*5=10 3*5=15 4*5=20 5*5=25 
61*6=6  2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 
71*7=7  2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 
81*8=8  2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 
91*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 

這樣咱們就完成了第三版本九九乘法表了,簡化了函數,修改了外觀,固然還有不少能夠修改的地方,code

咱們能夠經過修改print能夠改爲加法 減法 除法,還能夠經過time導入sleep,調整出現的時間,經過thinter做出GUI界面orm

小知識:

下面這幾個實驗能夠明確的知道format的用法

 1st= 'hello world.I like python'
2print(
3        '[{0}]'.format(st),        #正常替換進去     
4        '[{0:30}]'.format(st),     #控制字符串的長度爲30
5        '[{0:>30}]'.format(st),    #字符串右對其
6        '[{0:^30}]'.format(st),    #字符串居中對其
7        '[{0:-^30}]'.format(st),   #字符串居中對其且用’-‘填充多餘部分
8        '[{0:.<30}]'.format(st),   #字符串左對其且用’.‘填充多餘部分
9        '[{0:10}]'.format(st),sep='\n')    #所有取到
10        #這裏還用到了print()的sep 的用法,這是在同一行時sep決定兩個字符串中間用什麼
1[hello world.I like python]
2[hello world.I like python     ]
3[     hello world.I like python]
4[  hello world.I like python   ]
5[--hello world.I like python---]
6[hello world.I like python.....]
7[hello world.I like python]
1這樣咱們就完成了最終版本
相關文章
相關標籤/搜索