Steins;Lab

  • 项目
  • 折腾
  • 笔记
  • 图册
  • 杂谈
  • 文章索引 - 博主自荐博文
  • 关于/留言
Steins;Lab
某团的自留研究所
  1. 首页
  2. 学习笔记
  3. 正文

[学习笔记]Python&Raspberry Pi -- 寒假阅读笔记(完成-2016.2.16)

2017年1月17日 6558点热度 2人点赞 0条评论

Python & Raspberry Pi。寒假计划有要看的几本书。笔记持续更新在这里

Table of Contents

  • 《Head First Python》
    • 第一章:初识Python 人人都爱列表
    • 第二章:共享你的代码 函数模块
    • 第三章:文件和异常 处理错误
    • 第六章 创建数据对象——打包代码和数据
    • 阶段总结 2017.2.4
  • 《树莓派Python编程实战》
    • 总述
    • 正则表达式
  • 《树莓派+传感器》-创建智能交互项目的使用方法、工具及最佳实践
  • 《开源硬件创客》-15个酷应用玩转树莓派
  • 存放处
    • 1.获取linux的系统状态

《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


 

第二章:共享你的代码 函数模块

  1. 三重引号字符串为多行注释
  2. 命名空间。主命名空间为__main__
  3. 自带idle中F5为运行代码
  4. range()这个BIF可以和for连用,以控制迭代次数
  5. 包含end=''作为print() 这个BIF的一个参数,会关闭其默认行为:默认换行
  6. 可以为参数提供缺省值,这个函数的参数是可选的。

 


第三章:文件和异常 处理错误

先看一个典型的错误处理的思路:

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)

  1. open()打开一个磁盘文件,并创建一个迭代器从文件读取数据,一次读取一个数据行
  2. readline()读取
  3. 不可改变的常量列表为tuple,用(),可视为const
  4. 数据不符合期望格式: ValueError
  5. 数据无法正常访问IOError
  6. help访问BIF的文档
  7. pass语句视为NULL或者空语句

 

顺带补一句,我的小小chromebook简直是神器,使用Crouton在上面装了ubuntu和xfce4,配合idle3。

关键是我的这个chromebook和树莓派3一套的价格差不多。

2017.1.20


 

第六章 创建数据对象——打包代码和数据

创建你的字典,关于类的编程。
明确一下面向对象和面向过程的区别。
笔记摘自
https://www.zhihu.com/question/21204750
Geek An https://github.com/geekan 
面向某个东西,就表明这个东西是主导因素。
面向对象,那么对象就是主导因素。因此我们首先实现的不是函数,而是“类”,也即对象。首先我们知道世界上有很多类,比如人类,爬虫类,鱼类。而人类中还有超人类,变异人类,巨人类等等(仅供参考)。在面向对象时,我们实现程序,就是先实现某个类,比如“超人类”。然后我们实现它其中的一个方法,比如“cry”。这个cry方法是源自于它的父类“人类”的。如果你不实现它,那么超人类哭起来也和普通人类没有什么不同。这就是面向对象中的“继承”。而在面向过程的编程时,我们只知道方法“cry”,我们首先实现了它,而不考虑任何的其他要素。假设这个cry函数实现了人类的cry。
过了一段时间,我觉得超人类可以用一滴眼泪让人起死回生,那么应该怎么编程呢?一般来说,在cry里写肯定就行不通了,得用superman_cry函数来替代。而人类的cry怎么办?我们把它改写成了human_cry。

  • 这个时候调用者就头疼了:什么时候调用human_cry,什么时候调用superman_cry呢?
  • 而且是不是每个类想要cry,就要加一个函数呢?
  • 假如我想实现超人类的其他行为,又该怎么做呢?是不是用superman_beat,superman_eat这样来增加一系列函数呢?
  • 而人类中的函数失效了以后,超人类涉及到调用人类的函数又怎么办呢?

明白了吗?在面向对象时,对象是主导,你只需要调用person.cry()函数,而不需要担心他是人类,超人类,或者是更细节的婴儿时期、青年、壮年、抑或老年。而在面向过程时,你必须给这些诸多可能进行分门别类的一个一个判断,写出众多的函数:human_cry,human_kid_cry,superman_kid_cry。在可能越来越多,项目越来越大时,函数就以指数级增长了。
面向过程非常不利于解耦,对维护也有非常大的麻烦——往往写出代码的人都不能很好的搞定自己的代码。

在面向对象中还有很多概念,比如组合,泛型等,这又是后话了。

 

在面向对象中,代码称为“类的方法”,数据称为“类的属性”,实例化的对象称为“实例”。

关于类的创建:

每一个类的方法第一个参数都是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、负载、网络流量、硬盘等信息

 

相关

标签: Python Raspberry 学习笔记 树莓派
最后更新:2017年2月23日

SPtuan

SPtuan 是一名普通的工程师,最大的愿望是度过平静的时光。 当前从事网络/CDN/对象存储研发。

点赞
< 上一篇
下一篇 >
0 0 votes
文章评分
Subscribe
Login
提醒
guest

guest

0 评论
最新
最旧 得票最多
Inline Feedbacks
View all comments

SPtuan

SPtuan 是一名普通的工程师,最大的愿望是度过平静的时光。
当前从事网络/CDN/对象存储研发。

  • 《Head First Python》
    • 第一章:初识Python 人人都爱列表
    • 第二章:共享你的代码 函数模块
    • 第三章:文件和异常 处理错误
    • 第六章 创建数据对象——打包代码和数据
    • 阶段总结 2017.2.4
  • 《树莓派Python编程实战》
    • 总述
    • 正则表达式
  • 《树莓派+传感器》-创建智能交互项目的使用方法、工具及最佳实践
  • 《开源硬件创客》-15个酷应用玩转树莓派
  • 存放处
    • 1.获取linux的系统状态
分类
  • Uncategorized
  • 图册
  • 学习笔记
  • 库
  • 折腾
  • 杂谈
  • 瞎**扯
  • 碎碎念
  • 项目跟踪
最近评论
SPtuan 发布于 2 个月前(03月22日) 书签: 关于 disk-io 的经验, 异步/同步 io 系统设计的经验 https://you...
SPtuan 发布于 2 个月前(03月21日) 如果公司不是对外提供这些服务的,这种岗位都是 infra 部门,平均年龄确实会大一些。尤其构建和维护...
HUA 发布于 2 个月前(03月19日) 想请问博主对于国内CDN行业,以及CDN调度、DNS托管类服务相关岗位的看法,以及是否还推荐校招新人...
SPtuan 发布于 3 个月前(02月03日) 2025 注: 长辈对于只身去深圳的担忧,更多地来自于 80s/90s 治安情况。近几年了解了严打...
SPtuan 发布于 4 个月前(01月16日) 哈哈,100就100吧,新年快乐!
热门主题 & 页面
  • 全球互联网拓扑探索 (1) : 互联网是如何工作的
  • Intel Movidius Neural Compute Stick - 英特尔Movidius神经计算棒上手体验
  • iowait 到底是什么?
  • 使用 WSL2 + X11 转发 - 在 Windows10 中打造 GNU/Linux 学习生产环境
  • 动手做!基于nRF24L01P的Arduino无线通信
归档
  • 2025 年 5 月
  • 2025 年 3 月
  • 2024 年 12 月
  • 2024 年 9 月
  • 2024 年 8 月
  • 2024 年 5 月
  • 2024 年 3 月
  • 2024 年 2 月
  • 2023 年 12 月
  • 2023 年 11 月
  • 2023 年 9 月
  • 2023 年 8 月
  • 2023 年 4 月
  • 2023 年 1 月
  • 2022 年 12 月
  • 2022 年 10 月
  • 2022 年 9 月
  • 2022 年 7 月
  • 2022 年 6 月
  • 2022 年 2 月
  • 2021 年 12 月
  • 2021 年 11 月
  • 2021 年 2 月
  • 2021 年 1 月
  • 2020 年 9 月
  • 2020 年 4 月
  • 2020 年 3 月
  • 2020 年 1 月
  • 2019 年 8 月
  • 2019 年 7 月
  • 2019 年 5 月
  • 2019 年 4 月
  • 2019 年 3 月
  • 2019 年 2 月
  • 2018 年 12 月
  • 2018 年 10 月
  • 2018 年 9 月
  • 2018 年 8 月
  • 2018 年 5 月
  • 2018 年 2 月
  • 2018 年 1 月
  • 2017 年 11 月
  • 2017 年 9 月
  • 2017 年 7 月
  • 2017 年 6 月
  • 2017 年 5 月
  • 2017 年 4 月
  • 2017 年 3 月
  • 2017 年 2 月
  • 2017 年 1 月
  • 2016 年 12 月
  • 2016 年 11 月
  • 2016 年 10 月
  • 2016 年 9 月
  • 2016 年 8 月
  • 2016 年 7 月
  • 2016 年 6 月
  • 2016 年 5 月
  • 2016 年 4 月
  • 2016 年 3 月
  • 2016 年 2 月
  • 2016 年 1 月
  • 2015 年 12 月
  • 2015 年 11 月
  • 2015 年 9 月

友情链接:

Blessing Studio hahaschool 绘枫和畅 魔法少女Fandy monsterx Clarke的博客 Luminous’ Home Shintaku's Blog
蓝黑的博客 haruhi.club Yida的博客 Bo2SS 涛叔 TangBao 同和君Hocassian

Steins;Lab 团子神社 zdfmc.net

steinslab.io built with ❤. Thanks for all 2015-2025.

Theme Kratos Made By Seaton Jiang

wpDiscuz