书名: Python硬件编程实战html
做者: 李茂python
出版社: 机械工业出版社编程
【此处须要插入图片 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[空格]路径”。以下图所示:
【此处须要插入“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
函数:
【此处须要插入“函数图片”】
下面是一个好的排版方式,值得学习,以下:
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截取出,以此类推。至于前面和后面的两个符号“[:”与“:]”则是表示截取。下面给出截取的实例。
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