Python学习日记_《Python硬件编程实战》笔记_Mr_Ouyang

书名:    Python硬件编程实战html

做者:    李茂python

出版社:  机械工业出版社编程


 

Python学习日记_《Python硬件编程实战》笔记_Mr_Ouyang

 
 

【此处须要插入图片 Python封面】python2.7


 

笔者简评:不太适宜购买,全书大篇幅在用图片来解释极简单的细节,对于那些须要做者去深挖、深刻浅出解释的地方,则一律而过,算是不三不四吧;尽管如此,毕竟是笔者在图书馆好不容易碰运气找着的一本还算能够的Python教程书了,也算认真地看了一遍。编辑器


 

 

Python是一种脚本语言,是一种解释型语言,是一种高级语言,是一种面向对象的语言。函数

 

Python文件的后缀名是.py,它在实质上是一种文本文档,于是也就能够用文本编辑器甚至是记事原本进行编辑。工具

 

Python的缩写是Py,如目前讨论比较热烈的到底是用python2.+版本仍是python3.+版本,就能够缩写为Py2VSPy3。学习

 

Print              #此代码即为输出空行。测试

 

32位 == x86     32位,也即32bitui

64位 == x64    二者的主要区别即硬件CPU上,固然,也有的软件在二者上存在些微区别,大多数已经都支持64位了。

初学者,通常建议使用32位的python2.7版本最好,一来支持的库丰富,二来不用担忧硬件不能支持,三来功能相对来讲是更经济适用的,学会了2.0版本后,再去学习3.0版本就会很快。

 

源码的主要格式有如下5种:

1.【.tar】  2.【.gz】  3.【.zip】  4.【.7z】  5.【.tar.xz】

 

要将python的安装路径添加至环境变量Path中去。

 

在设置保存路径时,尽可能使用英文、数字、下划线,余者皆不宜,由于容易在后期出现未知错误;尤为不能使用空格,也尽可能不要使用汉字。

 

IDE:Integrated Development Environment。即集成开发环境。所谓集成,就是将一些相对独立、分散的东西,聚合到一块,使之方便调用。

 

Notepad++据做者李茂称是个蛮好用的文本编辑器,笔者暂未试用,先不予评价。

一个好的文本编辑器,固然得支持语法高亮,固然要对多种编码有比较好的支持,也最好有自动补全语法的功能。彷佛Notepad++都有这么些功能。

不过,Notepad++的语法高亮须要本身根据所编辑的语言进行自定义设置,方法为:语言-P-Python。

 

Windows下的CMD,即命令行工具Command Line。

在CMD中进入某个目录的方法:

Win+R-键入“cmd”-Enter-键入该路径所在盘符如“D:\” -键入“cd[空格]路径”。以下图所示:

Python学习日记_《Python硬件编程实战》笔记_Mr_Ouyang

 

【此处须要插入“CMD”图片】 

Notepad++彷佛能够直接用CMD打开该文件所在目录,路径:运行-OpenCurrentCmdDir。

彷佛能够经过某种方法将用CMD打开目录这个指令集成到右键菜单中,回头得空要去试一试。

 

在CMD中,若是已经进入了该文件所在目录,那么为了运行该文件,必然须要将其文件名打出来,若是一个一个打,则未免过于浪费时间,CMD中有一个自动补全文件名的功能,那就是Tab键,若是该文件所在路径只有那一个文件,暂时叫它“Hello.py”,那么咱们只须要键入“H”,而后再按一下Tab键,就能够将文件名自动补全;若是存在多个文件,那么能够按屡次Tab键,直到补全的名字为咱们所须要的文件名为止。

 

在IDLE中一次性地复制粘贴多行代码,极可能会报错,估计是由于缩进不规范致使的。待检验。

 

Python、CMD等,适合较短、较简单的代码的运行和测试;大型一点的,须要用诸如IDLE、PyCharm来进行编辑,其中,进入IDLE的方法可能有必定讲究,好比,若是直接双击其快捷方式进入,那么可能界面和命令行CMD差很少,简陋得很;若是是在py文件上右键选择“Edit With IDLE”则直接进入一个比较成熟的GUI界面,很PyCharm差很少。

 

#!/usr/bin/python

#_*_ coding: utf-8 _*_

上述第一行,其中的【#!】特殊字符组合,被称为SheBang,目前我也不知道是个什么意思,待查找;该行的做用是,若是Python看到了SheBang开头的行,便会自动到后面所附的路径下去寻找和运行对应的文件。

上述第二行,是一个编码说明。若是没有这个说明,那么Python就会默认你使用的是ASCII编码,也即只用这个编码方案来处理你写出来的代码;问题就在于,若是你写出来的代码不知不觉间附加了某个非ASCII代码,那么Python就会报错,这个时候就麻烦了。因此,最好加上这么一行编码说明,以便于让Python来对号入座的处理你的代码。

编码说明所在的位置,只能在第一行或者第二行;即若是有SheBang语句,那么就应该把编码说明放在第二行,没有的话就要放在第一行;如果放在其余位置,则Python会认为你不合规矩,也就不会听你的话来给你好好地执行代码了。基于此,最好对编码方案有必定的了解,故此须要在接下来的日子学习Html的知识。

 

在Python中,缩进是很严格的,与其余语言中的缩进做用不同,Python中采用缩进不只仅是为了美观的目的,而更是将其内在的代码逻辑蕴含于此,也即在Python中,缩进决定了代码的Context,若是缩进处理很差,就会报错,毕竟Python无法从你的上下文中理解你的真实意图了。通常由于缩进问题而报错的类型是以下:

【IndentationError:unexpected indent】

另外,缩进后的代码从属于上一行那个函数,能够将该函数下面的全部缩进的代码称为一个代码块Code Block。

Def main():  #定义一个main函数,所谓main,即脚本的主模块的名字,固然,咱们

#给这个主模块起任何的名字

    Code Block  #代码块

If __name__==”__main__”:  #若是该模块的名字为主模块名,那么久运行下面的main(),

#也即上面的main的代码块

    main()

 

关于name的辨析:

若是name在模块Modules中,则name为模块名;若是name在类Classes中,则name为类名,也即主模块名,固然,这只是我我的的理解,待检验。 

脚本的主模块名字,叫作__main__。脚本在被当作模块时,第一次被导入import后,系统会自动为其建立一个域名空间namespace。

若是当前脚本被当作模块被调用,则根据上面的辨析,咱们知道此事的name为对应的模块名,也即,此时是不符合if的判断条件“name=main”的,因此就不会将main()执行;若是当前脚本被当作普通的脚本文件单独运行,那么此时该脚本就自动成为主模块了,毕竟就它一根独苗了,此时自动知足if的判断条件,也就会执行main()的函数了。

之因此在函数结尾处加入这么一句判断,缘由在于,调用这个脚本时,我只是把它当作工具来使用,而不注重它到底是个什么内涵的玩意儿,我并不关心它有什么“料”,打个比方,我调用“她”只不过是“玩玩而已”,咱们俩这样“契合”只不过是各取所需,不但愿对方“介入本身的生活,不要在本身的世界留下痕迹”,这样,咱们就只须要将它做为工具来调用,为了达到这个目的,就应当加入这么一句判断了。

Self.value.name  #Instance.PropertyName,读取、写入实例的名称值

Self.function()  #Instance.function(),执行对应的动做

若是没有在Class的最初的__init__函数中正确的初始化实例变量,则会致使后续没有变量可用,进而出现AttributeError,莫名想到了那句“后死无仇可雪”,哈哈!

 

好的变成风格,应该命名时有所规范,使得所命制之名能够被一眼看出其做用,以便往后检查、回顾时阅读,如“name=Global News”这样的,应该改成“gName=Global News”。

变量的做用域Variable Scope:

1.     全局变量Global Variable

2.     局部变量Automatic Variable

关于他俩的关系,暂时不是特别清楚,待往后学完再补充。

 

If条件判断的几种写法:

(一)不带Else或Elif

If condition:  #注意,在跑一趟Python中,凡是涉及判断等语法的,都有在行末添加英文冒号

    Code-block

(二)带上Else

If condition:

    If-body

Else:

    Else-body

(三)三者俱全

If if-condition:

    If-code-block

Elif condition-1:

    Code-block-1

Elif condition-2:

    Code-block-2

……

Else:

    Code-block-else

函数:

Python学习日记_《Python硬件编程实战》笔记_Mr_Ouyang
 

【此处须要插入“函数图片”】

 

下面是一个好的排版方式,值得学习,以下:

Author:     Mr_Ouyang

Version:    2.7.6

Contact:    ouyy15@qq.com

总结起来就是,先将第一列的那些类别名先写出来,而后再从最长的那个入手,写好,尔后用空格使得左右内容有一种对称的美感,我的以为蛮不错。

 

交换变量值的方式:

(一)   其余语言中的方法

temp=a

a=b

b=temp

#经过借助temp这么一个中间变量,造成置换

(二)   Python中的方法,能够称之为多变量赋值,效率贼高

b,a = a,b

c,a,b = a,b,c

z,y,x,…,c,b,a = a,b,c,…,x,y,z

#直接经过顺序实现多变量的赋值,正如其名,赋值!直接将各变量赋值给须要置换的变量便可,此方法不限制个数,如上面第一行是两个变量置换,接着是三个、二十六个变量置换。

 

切片Slice:经过索引来取得String的内容,自定义截取

如:

Text=”String”,以下图所示,从S前面开始,算做索引号为0处,S与t之间是索引号1,能够看出,经过最多两个索引号,即可以将字符截取出来,如经过0:1能够将S截取出,以此类推。至于前面和后面的两个符号“[:”与“:]”则是表示截取。下面给出截取的实例。

Python学习日记_《Python硬件编程实战》笔记_Mr_Ouyang
【此处须要插入“索引”图片】

Text[1:4]=trij  #正常截取方法

Text[:5]=Strin = text[0:5]  #能够将首和尾的索引号省略,如此处将0省略了

Text[:-1]=Strin = text[0:-1] = text[0:len(text)-1]  #能够用负数索引号,也即倒着数的索引号,如-1。Len能够将放在括号内的参数的字符数计算出,好比len(text)就返回6,用len(text)减去某个数,也就等价于负的某个数,如此时的等价于-1。

Text[-4:]=ring = text[-4:len(text)]  #省略尾索引号

Text[2]=r = text[2:3]  #在只截取一个字符时,能够只写出该字符前面的索引号,而省略其后面那个索引号

Text[:]=String = text[0,len(text)]  #直接一个冒号,表明截取所有字符

Text[::-1]=gnirtS  #两个冒号,表明根据后面的数字进行跨越截取,后面跟着的数字,为步长值,正数则从前日后截取,负数则从后往前截取,如此处的表明从后往前截取,每次截取一个字符,故而获得倒着的所有字符

Text[::2]=Srn  #倒着截取,步长值为2,表明从前日后截取,每次跨越两个字符,故而获得正着的Srn,其实也就是至关于[0]+[2]+[4]截取的结果。

 

循环和枚举:

(一)   其余语言中的循环和枚举

>>>print items

[‘zero’,’one’,’two’,’three’]

>>>index=0

For item in items:

    Print index,item

    Index +=1  #也即每次进行print操做后,都将Index+1赋值给Index

(二)   Python中的循环和枚举

For I in range(len(items)):

    Print I,items[i]

或者是

Items=’zero one two three’.split()

For (index,item) in enumerate(items):

    Print index,item

#enumerate能够直接生成(index,item)类型的元组Tuple变量

 

条件性赋值:

(一)两个条件

Y=0

X=3 if (y==1) else 2

Print x

>>>2  #输出结果为2,由于y<>1,因此x为2

(二)三个条件

Y=0

X=3 if (y==1) else 2 if (y==-1) else 1

Print x

>>>1  #输出结果为1,由于y<>1且y<>-1,因此x<>3且x<>2,只能等于1

 

开源软件的特色:

开源;公开软件的源代码

共享;

Bug反馈;若是在共享使用过程当中,发现任何Bug,能够及时与开发者反馈,方便软件的改进

新添功能;用户能够将本身的成果添加进软件,使得软件愈来愈好

 

开源硬件:与开源软件相似。

现行比较厉害的开源硬件有这么几种:Arduino,树莓派,pcDuino。看书上写的开源硬件能够作到不少事情,好比湿度监测器、邮件控制车库门升降等,之后要去试试看,听说最高境界能够用来控制机器人,待学习。

 

笔者本身在百度文库找的Python2.6指南的中文翻译教程。网址:

https://wenku.baidu.com/view/924e1edf50e2524de5187e53.html

相关文章
相关标签/搜索