前言:之所以想系统地学习这部分内容,主要是考虑到后续工作中很可能会用到。凡是能够切实提高工作效率的工具和方法,我都认为值得主动去学习、去积累。基于这样的考虑,我在网上购买了《Python 编程实战 100 例》这本书,编著者是张晓老师。这里并非带货或推荐,仅仅是出于后续复现书中代码、记录学习过程的需要,理所当然地将书名写出来,方便说明学习脉络。若有志同道合的朋友,也非常欢迎一起交流、共同学习。
我个人一直觉得,无论是养成一个习惯,还是系统地学习一项技能,只要能够坚持一到两年,回过头来看,往往都会收获超出预期的成长。很多时候并不是方向不对,而是自己放弃得太早。坦白说,我并不是那种能在关键时刻迅速“冲一把”的人,也谈不上有什么天赋可言,因此更适合踏踏实实地走“水磨工夫”这条路,通过日积月累来弥补差距。
基于此,我计划以这本书为主线,坚持把其中的内容完整学完,并在过程中同步记录学习笔记与个人思考,既是对自己的约束,也是对学习过程的沉淀。后续更新将持续进行,也欢迎大家一起学习、监督、交流心得,与诸君共勉。
实例一、打印九九乘法口诀表
代码:
b='world'print('hello',b)x=-1.7777print(x)print('%10.3f'%x)print('%010.3f'%x)print('%-10.3f'%x)print('%+10.3f'%18.88000)a='编程是快乐的'print('(%s)的长度是:%d'%(a,len(a)))a='李明'b=18print('我是{0},我今年{1}岁了。'.format(a,b))print('不换行',end='')print('----')print('')for i in range(1,10):for j in range(1,i+1):print('{0}*{1}={2}'.format(j,i,i*j),end=' ')print()感悟:这块主要是学习print()函数,以及格式化控制符
Print()函数本身比较简单就是打印内容,字符串类型要带单引号‘’或者双引号“”,数字,浮点数则直接打印即可
对于格式化控制符表达结构是‘格式控制符’%数字、或者“格式控制符”%数字
以上述例子说明:
'%10.3f'%x代表打印数字x,10要求为10个字符宽度,不足用空格补齐,.3要求为三位小数,超过则四舍五入,f代表最后打印输出的是浮点数;
%010.3f'%x代表打印数字x,10要求为10个字符宽度,不足用0补齐,.3要求为三位小数,超过则四舍五入,f代表最后打印输出的是浮点数;
'%-10.3f'%x代表打印数字x,10要求为10个字符宽度,不足用空格补齐,.3要求为三位小数,超过则四舍五入,f代表最后打印输出的是浮点数,多出的-号代表是左对齐,这样本质上让空格补齐失效了;
'%+10.3f'%18.88000代表打印数字18.88000,10要求为10个字符宽度,不足用空格补齐,.3要求为三位小数,超过则四舍五入,f代表最后打印输出的是浮点数,+代表意思是要带正负号,所以虽然打印18.88000,实际打印出来是+18.880。
至于下面的两个代码则一一说明:
a='编程是快乐的'print('(%s)的长度是:%d'%(a,len(a)))说明:这里%后实际上是两个内容所以用了(),'(%s)的长度是:%d'%,满足格式要求
%s代表的是以字符串形式输出,用()的目的是为了达到(编程是快乐的)这样的显示效果
%d代表的是以数字形式输出
Len(a)本身是测量字符长度的函数,所以这里已经代表了数字6
a='李明'b=18print('我是{0},我今年{1}岁了。'.format(a,b))说明:这里的0,1本身就是为了占位,.format()函数则是包含前面要填入的内容。
至于九九乘法表,原理是很简单的,不过也有需要注意的点:
for i in range(1,10):这里的range(1,10)代表的是从1~10,包括1,不包括10,实际循环九次,并且只能实正整数,这个range()函数的内在逻辑
print('{0}*{1}={2}'.format(j,i,i*j),end=' ')需要理解,我们的目的应该是先计算量i*j在让这个数字进行输出,否则输出也是i*j这种形式的字符串了没有意义。
print('不换行',end='')print('----')print('')这是常见的打印不换行的代码,记住就可以了,并且要注意在end='',单引号之间加个空格可以让不换行式子之间多个空格,print('')目的在于终止不换行代码。
实例二、实现斐波那契数列
代码:
def fan(n):if n <= 0:return '传递的n必须为大于0的正整数'elif n == 1:return[0]else: a,b=0,1fablist=[0,1]for i in range(n-2): a,b=b,a + b fablist.append(b)return fablistprint(fan(11))
感悟:这个数列特征在于第一个是0,第二个是1,第三个是前两数之和,那么就要说明一个问题,要输出多少个数字。
def fan(n):目的在于定义一个函数,去判断n是不是大于0的正整数,原因在于range()函数可以在负数之间使用,要求是前者必须小于后者,本代码使用的是range(n-2),代表了起始为0,也就是n-2不能小于0,这些共同决定了代码运行时n是从3开始的
fablist.append(b)这个就是简单的给之间定义的数组尾部加元素的常见代码,记住就行。