Python学习笔记
公众号搜索--树莓派OpenCV学舍
python项目的组织结构
一.工程结构
二.编码规范
只有类名是用驼峰命名法,如HelloWord
其他全部(包、模块、函数、变量、常量)都是小写用下划线分隔,常量字母都是大写,下划线开头的都是私有的。left_with_right CAPS_WITH_UNDER
三.特殊模块
Python中特殊的模块__init__.py
这个__init__.py就是区别于包和这个文件夹的,只有包含了__init__.py模块的文件夹才能成为包(否则的话,就是一个文件夹),__init__.py是在模块导入时运行的。
__init__.py起了一个什么样的作用?在这个模块导入的时候它会运行,我们可以逐级导入,在__init__.py中做一些工作,但在实际开发当中,很少有人在__init__.py当中去做一些工作的,因为它只是标识了它是一个包。
四.导包路径
导包必须从根目录上去找,这是导包的一个小细节。
绝对导入:
from part3.my_package import init_test_test
相对导入:
from .my_package import init_test_test
.代表的是当前目录
..代表上一层目录
运行Python脚本时生成的__pycache__文件夹
用python编写好一个工程,在第一次运行后,总会发现工程根目录下生成了一个__pycache__文件夹,里面是和py文件同名的各种 *.pyc 或者 *.pyo 文件。先大概了解一下python基本运行机制。Python程序运行时不需要编译成二进制代码,而直接从源码运行程序,简单来说是,Python解释器将源码转换为字节码,然后再由解释器来执行这些字节码。
解释器的具体工作:
1 完成模块的加载和链接;
2 将源代码编译为PyCodeObject对象(即字节码),写入内存中,供CPU读取;
3 从内存中读取并执行,结束后将PyCodeObject写回硬盘当中,也就是复制到.pyc或.pyo文件中,以保存当前目录下所有脚本的字节码文件;
* 之后若再次执行该脚本,它先检查【本地是否有上述字节码文件】和【该字节码文件的修改时间是否与其脚本一致】。是就直接执行,否则重复上述步骤。
Python range() 函数用法
python range() 函数可创建一个整数列表,一般用在 for 循环中。函数语法:
range(start, stop[, step])
参数说明:
start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
实例
>>>range(10) # 从 0 开始到 10 但不包含10[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> range(1, 11) # 从 1 开始到 11但不包含11 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> range(0, 30, 5) # 步长为 5 [0, 5, 10, 15, 20, 25]
>>> range(0, 10, 3) # 步长为 3 [0, 3, 6, 9]
>>> range(0, -10, -1) # 负数 [0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
以下是 range 在 for 中的使用,循环出kurapika的每个字母:
实例2
实例3