刚开始学,可能记得有点乱,因为本人习惯在作业本上记笔记,慢慢改进。。。。。


Python

纯面向对象的编程语言

 

数据类型:这段数据在内存中的组织方式

 

Python:强类型的动态语言

动态:整型:a=1

      字符型:b=aaa

强类型:a+b不可执行,类型不同

Str(a) 运算符重载

‘1’

Str(a)+b --> 1aaa

 

 

控制语句

If分支 循环语句(while  for

 

List

List

>append. 添加元素,默认添加到最后,一次只能添加一个,以列表形式添加进去还是以列表形式出现

>extend. 添加元素,默认添加到最后,一次只能添加一个,以列表形式添加进去会被打散

Range 取值函数

range(10)

spacer.gif 

 

列表的下标 index

列表的值 item

Li.pop 返回并删除,默认返回最后一个值

Li.count 返回一个元素在列表中出现的次数

Li.index 返回一个元素在列表中第一次出现时的下标

 

列表和元祖都是有续集合

 

Tuple 元祖

也支持下标和切片,但是是不可变对象

T.count

T.index

 

 

集合set

定义一个空集合:

s = {}.X

S = set() V  要调用set函数

集合中的元素是无序的且不可重复

根据一个元素被hash后的值去判断是否和其他元素相同

 

S.pop随机返回某元素并删除

 

S.isdisjoint  有交集返回false,无交集返回true

S1.issubset(s2) 判断S1是否为S2的子集

 

迭代器iterator

 

Eg:  For i in li:

For语句先将li转换成迭代器,再调用next

 

数据结构

键值对(key.vlaues

字典dict:无序的,除了元素还有key,keyhash,不允许重复

 

元素的多重赋值与解包

 

d.has_key(***)判断字典里是否有key(***),有的话返回true,没有的话返回false

 

 

SSH*/etc/ssh/sshd_config  49行:Without-password

被登陆的IP的公钥 为了传输数据加密和解密

 

generator生成器

 

 

 

函数 模块化 代码重用 封装)

 

位置传参

spacer.gif 

 

关键字传参

spacer.gif 

混合传参  *位置传参一定要在关键字传参之前,没带默认值的参数必须放在带默认值的参数之前

 

spacer.gif  spacer.gif  spacer.gif

 

可变参数(变数量):1,可变位置参数

         2,可变关键字参数

 

>可变位置参数:解释器将参数打包成元祖(列表可能被修改,集合无序),传递给变量。

spacer.gif    spacer.gif

 

>可变关键字参数:解释器将参数打包成字典

 

spacer.gif 

*可变参数必须定义在不可变参数之后

列表(元祖)解包--->位置传参

字典解包--->关键字传参

 

调用*解包,定义*打包

 

Python递归最大深度为1000

 

*函数是一等对象,可以作为一个参数传给另外一个函数

 

文件系统:决定文件在磁盘上的存取方式

Block默认值:(4K

:申请Inode ---> 索引条目 ---> 存数据

记录使用的block

 

传值代码分两次执行完成

spacer.gif 

生成器传值,第一次只能传None,第一次还没有接受值的操作,第二次才会有

通过 g.send(None) 可以启动生成器函数,在启动生成器函数时只能 send(None), 如果试图输入其它的值都会得到错误提示信息。

 

装饰器 生成器

 

Python.org     ---------    CSV  ConfigParser

日志分级别

gc:垃圾回收的接口

NUMA  ------   非一致性内存访问

进程绑定固定的核心CPU

lsof     文件描述符

 

Path.splitext(‘aa.tar.gz’)  分割后缀名

 spacer.gif

 

判断是否是个文件,不存在也返回False

spacer.gif 

 

sys.修改配置和操作,改变解释器的runtime(运行时)

sys.argv  从命令行接受参数,封装为一个列表

sys.stderr  

sys.stdout  

 

Umask

 

磁盘管理的最小单位:扇区。

 

 top  cpu上排队队列长度的平均值

spacer.gif 

 

Shutil.copy()原路径必须是文件,目标路径可以是目录也可以是文件

Shutil.copy2() ==== cp -p 不更改被复制文件的信息

Shutil.copytree() ===== cp -r -p 递归复制目录

Shutil.copymode() ===== 复制权限

Shutil.copystat ===== 复制状态信息