Python & Raspberry Pi。寒假计划有要看的几本书。笔记持续更新在这里
Table of Contents
《Head First Python》
第一章:初识Python 人人都爱列表
1.for循环处理列表
for each_item in movies: print(each_item) count = 0 while count < len(movies) print(movies[count]) count = count+1
2.单引号和双引号都可以创建字符串。但是如果字符串前面使用了某个引号,字符串后面也要使用同样的引号。
3.对于命名,python为大小写敏感型。
4.BIF即内建的函数
5.创建函数
def print_lol(the_list): for each_item in the_list: if isinstance(each_item,list): print_lol(each_item) else: print(each_item) print_lol(movies)
2017.1.17
第二章:共享你的代码 函数模块
- 三重引号字符串为多行注释
- 命名空间。主命名空间为
__main__
- 自带idle中F5为运行代码
range()
这个BIF可以和for连用,以控制迭代次数- 包含
end=''
作为print() 这个BIF的一个参数,会关闭其默认行为:默认换行 - 可以为参数提供缺省值,这个函数的参数是可选的。
第三章:文件和异常 处理错误
先看一个典型的错误处理的思路:
import os try: myfork=open("sketch.txt") for each_line in myfork: try: (role,line_spoken) = each_line.split(":",1) print(role,end="") print(" said: ",end="") print(line_spoken,end="") except ValueError : pass myfork.close() except IOError: print("The data file is missing!")
体现了错误处理的思路:
一种是“额外代码”型,使用额外代码包容所有错误,会大大增加代码量,且不一定包容所有错误。(典型为if else不断判断情况并处理)
另一种是异常处理程序,使用异常处理处理有可能的错误。对已经有预料的错误不再处理,但是仍然提示其他类型的错误。(try和except)
open()
打开一个磁盘文件,并创建一个迭代器从文件读取数据,一次读取一个数据行readline()
读取- 不可改变的常量列表为tuple,用(),可视为const
- 数据不符合期望格式:
ValueError
- 数据无法正常访问
IOError
help
访问BIF的文档pass
语句视为NULL或者空语句
顺带补一句,我的小小chromebook简直是神器,使用Crouton在上面装了ubuntu和xfce4,配合idle3。
关键是我的这个chromebook和树莓派3一套的价格差不多。
2017.1.20
在面向对象中,代码称为“类的方法”,数据称为“类的属性”,实例化的对象称为“实例”。
关于类的创建:
每一个类的方法第一个参数都是self
类可以从零开始创建,也可以从Python的内置类进行继承。
类中每一个方法都必须以self作为一个参数。每一个属性若需要与实例相关联,必须用self进行关联。
2017.1.29
阶段总结 2017.2.4
之后陆陆续续把head first这本书看完了。依次是实例应用开发,web前端开发和Android应用开发,涉及一些简单的前端和数据库知识。Python能做的事情有很多,科学计算、爬虫应用、前端后端等等。然而真正重要的是使用,做某一方面的工作要把该方面吃透,去应用这门语言。
这篇文章标题为 Python on RaspberryPi。我的目标是用树莓派做一些东西。
下一步读《树莓派Python编程》,做一些有趣的应用出来。
2017.2.4
《树莓派Python编程实战》
总述
之前的head first是随着需求一点一点地讲了Python的一些内容,符合正常的思考搜索顺序。这本书是先系统地讲了Python的基础知识结构,然后举了在Raspberry上应用的例子。
后面就略读了。最后的实践项目涉及到一些简单的电学硬件的东西。
正则表达式
待补充
《树莓派+传感器》-创建智能交互项目的使用方法、工具及最佳实践
这本书其实是我最感兴趣的一本,里面主要内容是GPIO引脚的运用和Python、C、shell脚本对引脚的控制。
上一个假期把《c语言学习51单片机》所有的实验都做了,还做了挺多Arduino的项目,这边的上手就很快了。能够将之前的思维快速移植过来。
因为基于Linux,包含强大(相对比与Arduino)的运算能力,软件资源和网络功能,因此树莓派用于创建物联网项目快速原型非常合适。
之前由于建站,只是稍微了解了一下linux的一些概念和基本操作。果真树莓派是学习linux的神器,在做各种实践项目中,不知不觉,linux一般使用就熟练了,一些理解也更深了。
这本书有基本的传感器项目,还有综合的气象站搭建示例,涉及一点opencv的使用,最大的作用还是激发运用传感器的灵感。这里摘抄一些例程,用于熟悉在树莓派环境下使用GPIO的方法,就够了。
2017.2.8
《开源硬件创客》-15个酷应用玩转树莓派
简单介绍了树莓派15个应用,比如影音盒子、下载机、私有云等等。但都是概要,罗列了一些软件的安装方法,这本书只是适合用于激发兴趣。大部分应用都能在互联网上找到更加详细的教程。
简单翻阅后略过。
2017.2.6
存放处
1.获取linux的系统状态
为了通过1602显示屏输出系统状态,需要读取系统信息。
Linux 内核提供了一种通过 /proc 文件系统,在运行时访问内核内部数据结构、改变内核设置的机制。
Linux下/proc目录简介 - Mr. David 专栏 - 博客频道 - CSDN.NET
通过/proc 下的子文件,可以实时方便地获取系统信息,后交由Python和GPIO进行各类应用和处理。
不光是本地负载信息,也可以用于获取远端服务器系统信息,方便监控和运维。
使用Pyhton获取系统信息的例程如下
linux系统下 python获取 内存、cpu、负载、网络流量、硬盘等信息