九九开始的复习

这周复习之前的学的知识关于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
'''
我的第一反应,两个循环 一个负责行的循环 一个负责列的循环,这样我们可以创建两个函数达到自己的目的
于是有了下面的第一个版本

 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 

这是按照需求生成的第一个版本,它满足了我对乘法表的逻辑设计,一个负责生成行,一个负责生成列,是最基础的版本,跟它在数学的地位一样,搭建了最基础也是最重要的地基。

这里我们用到了print()的用法,在print()函数中在后面添加一个'end=',这可以在打印一串字符时用end=后面的符号链接字符,默认使用回车符号来填充,我这里为了可以让他们在同一行,用了空格进行间隔

这里还用了range()函数,在range()中默认是从0开始的,我们不需要0,所以从x=1开始,

还有拼接字符串的函数format(),下面在具体使用它
当然我们不可能对这么简单的代码就满足了,然后我们对它进行优化,第一步先合并成一个函数,for循环里面叠加一个for循环,最后只用一个函数就可以解决问题,简单明了。

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 

这样我们就完成了第三版本九九乘法表了,简化了函数,修改了外观,当然还有很多可以修改的地方,

我们可以通过修改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这样我们就完成了最终版本

最新文章

  1. Oracle读取excel
  2. kill命令
  3. Java算法之字符串反转分析
  4. Oracle 常见函数
  5. perl sub
  6. C可变参数函数 实现
  7. 静态/动态函数库设计,王明学learn
  8. Python与Hack之Unix口令
  9. expandlistview
  10. mysql死锁示例
  11. JTAG的SWD接线方式
  12. Traveling by Stagecoach 状态压缩裸题
  13. Supervisor的安装与使用入门
  14. QT使用WOL实现远程一键开机(局域网)
  15. UVA 10892 LCM Cardinality(数论 质因数分解)
  16. HDU 4915 Parenthese sequence _(:зゝ∠)_ 哈哈
  17. 第14天dbutils与案例
  18. WPF的一些感悟
  19. Java数据结构和算法(七)——链表
  20. django源码分析 python manage.py runserver

热门文章

  1. Array.prototype.reduce 的理解与实现
  2. swift直接赋值与引用赋值都会触发willSet
  3. 「PKUWC2018」随机算法
  4. SVN 客户端使用
  5. 【转】tomcat搭建本地服务器 实现apk更新下载
  6. java final使用
  7. Spring源码分析(十五)获取单例
  8. ZOJ3211-Dream City(贪心思想+变形的01背包)
  9. CCF认证201712-1最小差值
  10. Oracle透明网关访问SQLServer数据库