这是我自己通过学习记录下来的笔记,有错误的地方希望大家提出来,有不明白的地方请发邮件champly@outlook.com联系我,我希望与大家一起学习python,这只是一点基础,对于没有一点编程基础的人来说,相对有点不适合。这个笔记是python3.4版本的,2.*版本的有点不一样,阅读前请先阅读这段文字,希望能帮到你!
切片:a[起始位置:结束位置] -- 可以截取字符串a当中的一段字符串
eg:a[:4] -- 从开头取到第四个
a[2:]-- 从第二个取到结尾
a[::n]-- 每隔n个单位取一个
字符串:
+:把两个字符串连接起来
*:重复出现字符串的次数
len():得出字符串的长度
in:判断元素是否在序列中
max():取出最大值
min():取出最小值
cmp(str1, str2):比较2个字符串是否相同
count:统计参数在列表中出现的次数
index:返回参数在列表中的位置
reverse:把列表原地翻转
sort:把列表进行排列(默认是从小到大)
sort(指定排序的算法,和算法搭配的关键字,reverse = false)
sort(reverse=True):从大到小
注意:list2 =list1 和 list2 = list1[:]的区别
第一个是共用一个地址,相当于static
第二个是copy,一个改变不改变另外一个
元组:
单个元素不允许改变
整体被改变的话内存空间变了
定义的时候用()
如果只有一个变量的话也要用','逗号
列表:
单个元素可以改变,改编之后内存空间不变
定义的时候用[]
使用方法:
增加一个值:列表.append();
删除一个变量:列表.remove();括号里面可以是 列表[] 或者是 直接写变量的值
del(list[]):删除一个变量的值
-3 ** 2 = -9;
3 ** -2 = 0.1111111111111111;
else if 用 elif 来代替
assert 用于程序调试,当程序执行到这一行的时候,如果后面为假的话程序自动崩溃并
抛出AssertionError的异常
字符串:
capitalize():把字符串的第一个字符改为大写
casefold():把字符串变成小写
center():把字符串居中(左右的空格相等)
endswith(str):字符串是否是以str结尾
find(str):检测字符串中是否包含str,不存在返回-1
index(str):和find一样,不存在抛出异常
join(str):以str作为分隔符插入字符串
replace(old,new):用new替换old
strip():删除字符串左右两边的空格
filter(变换方法,列表):过滤器
map():和filter的用法差不多,映射,括号里的参数都是一样的
字典的清空方法:clear(),这样用是清空内存
pickle:(腌制泡菜)
二进制文件最好是以.pkl 作为后缀
导入到一个二进制文件:
temp:为一个列表,字典,或者是元组
pickle_file= open(path, "wb"):path是一个要保存的二进制文件的路径
pickle.dump(temp,pickle_file)
pickle_file.close():必须关闭
从二进制文件导出:
pickle_file= open(path, "rb"):path是一个要存放的二进制文件的路径
temp= pickle.load(pickle_file):temp为一个列表,字典,或者是元组
raise:自身产生一个异常
用法:raise + 异常名
例子:
输入: raise ZeroDivisionError("除数为零")
结果: Traceback (most recent call last):
File"<pyshell#0>", line 1, in <module>
raiseZeroDivisionError("除数为零")
ZeroDivisionError:除数为零
else的用法:
和 if 搭配;
和 while 的搭配:源代码中的:素数.py
和 try 的搭配:源代码中的:try_else的用法.py
OS 模块中关于文件/目录常用的函数使用方法:
函数名 使用方法
getcwd() 返回当前工作目录
chdir(path) 改变工作目录
listdir(path='.') 列举指定目录中的文件名('.'表示当前目
录,'..'表示上一级目录)
mkdir(path) 创建单层目录,如该目录已存在抛出异常
makedirs(path) 递归创建多层目录,如该目录已存在抛出异
常,注意:'E:\\a\\b'和'E:\\a\\c'并不会冲突
remove(path) 删除文件
rmdir(path) 删除单层目录,如该目录非空则抛出异常
removedirs(path) 递归删除目录,从子目录到父目录逐层尝试删除,
遇到目录非空则抛出异常
rename(old, new) 将文件old重命名为new
system(command) 运行系统的shell命令
walk(top) 遍历top路径以下所有的子目录,返回一个三元
组:(路径, [包含目录], [包含文件])
以下是支持路径操作中常用到的一些定义,支持所有平台
os.curdir 指代当前目录('.')
os.pardir 指代上一级目录('..')
os.sep 输出操作系统特定的路径分隔符(Win下为'\\',
Linux下为'/')
os.linesep 当前平台使用的行终止符(Win下为'\r\n',Linux下
为'\n')
os.name 指代当前使用的操作系统(包括:'posix', 'nt',
'mac','os2', 'ce', 'java')
os.path模块中关于路径常用的函数使用方法:
函数名 使用方法
basename(path) 去掉目录路径,单独返回文件名
dirname(path) 去掉文件名,单独返回目录路径
join(path1[, path2[, ...]]) 将path1, path2各部分组合成一个路径名
split(path) 分割文件名与路径,返回(f_path,f_name)元组。
如果完全使用目录,它也会将最后一个目录作为文
件名分离,且不会判断文件或者目录是否存在
splitext(path) 分离文件名与扩展名,返回(f_name,f_extension)元组
getsize(file) 返回指定文件的尺寸,单位是字节
getatime(file) 返回指定文件最近的访问时间(浮点型秒数,可用time
模块的gmtime()或localtime()函数换算)
getctime(file) 返回指定文件的创建时间(浮点型秒数,可用time模块
的gmtime()或localtime()函数换算)
getmtime(file) 返回指定文件最新的修改时间(浮点型秒数,可用time
模块的gmtime()或localtime()函数换算)
以下为函数返回True或False
exists(path) 判断指定路径(目录或文件)是否存在
isabs(path) 判断指定路径是否为绝对路径
isdir(path) 判断指定路径是否存在且是一个目录
isfile(path) 判断指定路径是否存在且是一个文件
islink(path) 判断指定路径是否存在且是一个符号链接
ismount(path) 判断指定路径是否存在且是一个挂载点
samefile(path1, paht2)判断path1和path2两个路径是否指向同一个文件
定义一个类:(支持多继承)
1.类中的方法有一个 self参数,相当于 JAVA 中的 this
2.__init__(self),构造方法
3.对象的属性默认的都是公有的,私有变量或者方法在变量名或方
法名前面加 "__" 两个下划线就好了(其实就是改了名的,__类名__变量名
还是可以访问的
4.继承的方法,在类名后面加一个括号,里面写上父类就好了,可以有多个
5.调用父类的构造方法:父类的名.__init__(self) //未绑定的对象
6.super方法,super().父类的方法();
类的相关方法:
issubclass(B,A):判断 B 是不是 A 的子类
注意:任何类都是自己的子类,都是 object 类的子类
isinstance(object,class):判断一个实例化对象 object 是不是 class 的
对象
hasattr(object,name):判断一个 name 是否属于 object 的属性
name 必须用双引号引起来,不然系统不认
getattr(object,name[, default]):判断 name 的值,如果存在于 object 对象
则打印结果,如果不存在并且default 有东西,则打印
default中的类容,否则什么也不打印
setattr(object,name, value):设定 object 对象的 name 属性的值,如果不存在
则新建一个属性
deleteattr(object,name):删除 object 对象的 name 属性,如果不存在则抛异常
property(fget=None, fset=None, fdel=None,doc=None):
用属性控制属性
__new__(cls [,]):是类调用的第一个方法
__del__(self):析构方法
关于属性的魔法方法:
__getattr__(self,name):定义当用户试图去一个不存在的属性时的行为
__getattribute__(self,name):定义当该类的属性被访问是的行为
__setattr__(self,name, value):定义当一个属性被设置时的行为
__delattr__(self,name):定义当一个属性被删除时的行为
描述符:就是将某种特殊类型的类的实例化指派给另一个类的属性
__get__(self,instance, owner):用于访问属性,它返回属性的值
__set__(self,instance, value):将在属性分配(赋值)的操作中调用,不返回任何内容
__delete__(self,instance):控制删除操作,不返回任何内容
容器类型的协议:
如果希望定制的容器是不可变的话,只需要定义:
__len__()和__getitem__()方法
如果希望定制的容器是可变的话,要定义:
__len__(),__getitem__(), __setitem__()和__delitem__()方法
迭代器的内置函数:
iter():
next():返回下一个值,如果没有下一个值了,抛出一个 StopIteration 异常
raise:产生一个异常
生成器:
当运行到 yield 时,自动挂起
用圆括号括起来的就是生成器的推导式
模块:就是程序
导入:
import 模块名
用法:模块名.方法名()
from 模块名 import 函数名
用法:直接使用方法名(不建议这么写,命名空间)
import 模块名 as 别名
用法:别名.方法名()
if__name__ == '__main__'的用法:
判断程序是否是在测试状态
搜索路径:sys.append();加入列表里面
包(package):
创建:1.创建一个文件夹,用于存放相关的模块,文件夹的名字即包的名字
2.在文件夹中创建一个 __init__.py的模块文件,内容可以为空
3.将相关的模块放入文件夹中
导入一个包:
import包名.模块名
2015年3月21日
by:champly
-
顶
- 0
-
踩