九九乘法表的python复习
九九開始的復習
這周復習之前的學的知識關于range函數,gormat函數,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
'''
我的第一反應,兩個循環 一個負責行的循環 一個負責列的循環,這樣我們可以創建兩個函數達到自己的目的
于是有了下面的第一個版本
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?
這是按照需求生成的第一個版本,它滿足了我對乘法表的邏輯設計,一個負責生成行,一個負責生成列,是最基礎的版本,跟它在數學的地位一樣,搭建了最基礎也是最重要的地基。
這里我們用到了print()的用法,在print()函數中在后面添加一個'end=',這可以在打印一串字符時用end=后面的符號鏈接字符,默認使用回車符號來填充,我這里為了可以讓他們在同一行,用了空格進行間隔
這里還用了range()函數,在range()中默認是從0開始的,我們不需要0,所以從x=1開始,
還有拼接字符串的函數format(),下面在具體使用它
當然我們不可能對這么簡單的代碼就滿足了,然后我們對它進行優化,第一步先合并成一個函數,for循環里面疊加一個for循環,最后只用一個函數就可以解決問題,簡單明了。
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#九九乘法表-v32def?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?
這樣我們就完成了第三版本九九乘法表了,簡化了函數,修改了外觀,當然還有很多可以修改的地方,
我們可以通過修改print可以改成加法 減法 除法,還可以通過time導入sleep,調整出現的時間,通過thinter作出GUI界面
小知識:
下面這幾個實驗可以明確的知道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這樣我們就完成了最終版本
轉載于:https://www.cnblogs.com/zjj-tiantian/p/10011893.html
總結
以上是生活随笔為你收集整理的九九乘法表的python复习的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 装完xp系统不断重启怎么回事 XP系统安
- 下一篇: 电脑无法进入界面怎么办 电脑开不了界面该