python完全学习笔记

dir(__builtins__)

help(input)

‘let\‘s go‘   #转义字符 \

r‘c:\now‘       #字符串前加r 自动转义

str= ‘‘‘

shdiufhi

sdfjskldfjk

dfdfsdf

‘‘‘  #多行打印

isinstance(i , str)  #判断是否符合str类型

//   #地板除法

2 ** 4  #16 幂运算

-3 ** 2  #-9 优先级问题  比左侧优先级高右侧低

small = x if x<y else y  #三元操作符

assert 3>4  #断言  错的抛出异常assertionexception

print(i, end = ‘ ‘)  #

list.append()

list.extend()#参数中传入的数组进行组合

list.insert(1,value)#根据位置插入到列表中

list.remove()#移除目标

del list[1]#从内存中删除列表元素

list.pop()#随机pop或指定索引

list[:]#获得列表的拷贝

list可相加

in#可用来判断列表中是否包含

‘{0} love {1}‘.format(‘i‘, ‘u‘)

‘{a} love {b}‘.format(a= ‘i‘, b=‘u‘)

‘{0:.1f}{1}‘.format(12.32323, ‘mfc‘)

序列list turple 字符串

list(‘mengfanchen‘)

turple(‘mengfanchen‘)

sorted()  #排序方法

enumerate()  #转为元组

a=[1,2,3,4,5,6,7]

b=[3,5,7,4,8]

list(zip(a,b))=[(1,3),(2,5),(3,7),(4,4),(5,8)]#  嗯应该有用

函数:

明明规则首字母大写MengFanChen()

函数文档:

def MengFanChen(‘name‘, ‘age‘):

‘这是一个例子‘

print(‘this is mengfanchen!‘)

MengFanChen.__doc__就会返回上面的‘这是一个例子‘

关键字参数

MengFanChen(name = ‘mengfanchen‘, age=‘17‘)

默认参数

收集参数

def test(*params):

print(‘hahaha‘,len(params)

def test(**kwargs):

for key in kwargs:

print "another keyword arg: %s: %s" % (key, kwargs[key])

内嵌函数和闭包:

count = 5

def MyFun():

global count

count=10

print(count)  #全局变量被修改global关键字

def FunX(x):

def FunY(y):

return x*y

return FunY

FunX(5)(8)  ->40  #FunY即为一个闭包

i = FunX(5)

type(i) -> function  #即为FunY

def Fun1():

x = 5

def Fun2():

nonlocal x

x *= x

return x

return Fun2()  #nonlocal关键字可使Fun2()使用外部变量x  或者使用x[]因为不会被当作局部变量

lambda(匿名函数):

g= lamda x : 2*x+1

print(g(5))   #lamda省下定义函数的过程

filter:过滤

list(filter(None , [1,0,Falsr,True]))

->[1,True]  #默认过滤出True类型

temp =range(10)

def odd(x):

return x%2

print(list(filter(odd, temp)))

->[1,3,5,7,9]  #仔细想想是怎么求奇数的

用lambda实现上述例子

list(filter(lambda x : x%2, range(10)))  #很强

map:映射

list(map(lambda x : x*2, range(10)))

[0,2,4,6,8,10,12,14,16,18]  #map也有点有用

递归:

import sys

sys.setrecursionlimit(100000)  #设置递归深度

字典与集合:

dict1 = dict.fromkeys([1,2,3,4,5], ‘mengfanchen‘)

{1: ‘mengfanchen‘, 2: ‘mengfanchen‘, 3: ‘mengfanchen‘, 4: ‘mengfanchen‘, 5: ‘mengfanchen‘}

6 in dict1 ->False

set:唯一&无序

num = [1,2,3,4,5,5,6]

num = list(set(num)) -> [1,2,3,4,5,6]

frozenset:不可变集合

标准读入文件方式:

for each_line in f:

Print(each_line)  #官方文档推荐形式

模块是一个包含所有函数和变量的文件.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两个路径是否指向同一个文件

Pickle模块(对象,二进制互相转换)

Temp = [1,2,3,4,5]

Pickle_file = open(‘temp.pkl’, ‘wb’)

Pickle.dump(temp, pickle_file)

Pickle.close

Pickle_file = open(‘temp.pkl’, ‘rb’)  #read binary

Temp = pickle.load(pickle_file)

异常处理:

几个语句,try catch finally raise

else(try后面可以加else不出错则执行else语句)

with(可以详细看一下,感觉很高端)


AssertionError


断言语句(assert)失败


AttributeError


尝试访问未知的对象属性


EOFError


用户输入文件末尾标志EOF(Ctrl+d)


FloatingPointError


浮点计算错误


GeneratorExit


generator.close()方法被调用的时候


ImportError


导入模块失败的时候


IndexError


索引超出序列的范围


KeyError


字典中查找一个不存在的关键字


KeyboardInterrupt


用户输入中断键(Ctrl+c)


MemoryError


内存溢出(可通过删除对象释放内存)


NameError


尝试访问一个不存在的变量


NotImplementedError


尚未实现的方法


OSError


操作系统产生的异常(例如打开一个不存在的文件)


OverflowError


数值运算超出最大限制


ReferenceError


弱引用(weak reference)试图访问一个已经被垃圾回收机制回收了的对象


RuntimeError


一般的运行时错误


StopIteration


迭代器没有更多的值


SyntaxError


Python的语法错误


IndentationError


缩进错误


TabError


Tab和空格混合使用


SystemError


Python编译器系统错误


SystemExit


Python编译器进程被关闭


TypeError


不同类型间的无效操作


UnboundLocalError


访问一个未初始化的本地变量(NameError的子类)


UnicodeError


Unicode相关的错误(ValueError的子类)


UnicodeEncodeError


Unicode编码时的错误(UnicodeError的子类)


UnicodeDecodeError


Unicode解码时的错误(UnicodeError的子类)


UnicodeTranslateError


Unicode转换时的错误(UnicodeError的子类)


ValueError


传入无效的参数


ZeroDivisionError


除数为零

内置异常类层次结构

BaseException

+-- SystemExit

+-- KeyboardInterrupt

+-- GeneratorExit

+-- Exception

+-- StopIteration

+-- ArithmeticError

|    +--
FloatingPointError

|    +--
OverflowError

|    +-- ZeroDivisionError

+-- AssertionError

+-- AttributeError

+-- BufferError

+-- EOFError

+-- ImportError

+-- LookupError

|    +--
IndexError

|    +--
KeyError

+-- MemoryError

+-- NameError

|    +--
UnboundLocalError

+-- OSError

|    +--
BlockingIOError

|    +--
ChildProcessError

|    +--
ConnectionError

|    | 
  +-- BrokenPipeError

|    | 
  +-- ConnectionAbortedError

|    | 
  +-- ConnectionRefusedError

|    | 
  +-- ConnectionResetError

|    +--
FileExistsError

|    +--
FileNotFoundError

|    +--
InterruptedError

|    +--
IsADirectoryError

|    +--
NotADirectoryError

|    +--
PermissionError

|    +--
ProcessLookupError

|    +--
TimeoutError

+-- ReferenceError

+-- RuntimeError

|    +--
NotImplementedError

+-- SyntaxError

|    +--
IndentationError

|    
    +-- TabError

+-- SystemError

+-- TypeError

+-- ValueError

|    +--
UnicodeError

|    
    +-- UnicodeDecodeError

|    
    +-- UnicodeEncodeError

|    
    +-- UnicodeTranslateError

+-- Warning

+-- DeprecationWarning

+-- PendingDeprecationWarning

+-- RuntimeWarning

+-- SyntaxWarning

+-- UserWarning

+-- FutureWarning

+-- ImportWarning

+-- UnicodeWarning

+-- BytesWarning

+-- ResourceWarning

Easygui

继承:

Class mylist(list):

实现了继承

多态

Python的魔法方法:

__init__(self)       构造方法

函数或变量名前加上两个’_’就会变成私有,伪私有。

class person():

__name
= ‘mengfanchen’

p.__name不能调用,但是p._person__name就可以调用。

Python中也可以进行方法重写。

注意__init__方法也会被重写,按上面的方法写可以继承父类的属性。

Python可以进行多重继承。

尽量避免使用

__dict__方法可以显示对象的所有属性以及方法。

BIF:

Hasattr(),Getattr(),setattr(),delattr()

Property()方法,能够将对一个属性的操作集合到一个属性上。

如上图,del(c1.x)就可以调用delSize()将size属性删除。

构造和析构

魔法方法:

__init__

这里面的__new__一般不需要重写但是当类继承自不可变类型时(及不能进行__init__)可进行重写,必须要有返回值。

__del__方法,当对象被销毁时调用。

工厂函数:

如果想要类对象可以用print输出,需要重写__str__方法

如果想要直接得到类对象的值需要重写__repr__方法

通过属性调用属性,这个很有用啊。

这个是访问属性的时候他要先调用__getattribute__然后再是相关操作,__getattr__是当调用的属性不存储在的时候默认调用的方法。

Property的原理:描述符。如上

定制容器,如果容器不可变需要定义__len__()和__getitem__()方法。

如果可变则需要定义__setitem__()和__getitem()__方法。

上面的自定义容器是不可变的。

迭代器

__iter__(), __next__()两个魔法方法

生成器

Yield生成一个迭代器

关于yield的高级作用:http://bbs.fishc.com/thread-56023-1-3.html

模块:

Already know.

时间: 2024-10-06 10:47:34

python完全学习笔记的相关文章

2. 蛤蟆Python脚本学习笔记二基本命令畅玩

2. 蛤蟆Python脚本学习笔记二基本命令畅玩 本篇名言:"成功源于发现细节,没有细节就没有机遇,留心细节意味着创造机遇.一件司空见惯的小事或许就可能是打开机遇宝库的钥匙!" 下班回家,咱先来看下一些常用的基本命令. 欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/48092873 1.  数字和表达式 看下图1一就能说明很多问题: 加法,整除,浮点除,取模,幂乘方等.是不是很直接也很粗暴. 关于上限,蛤蟆不太清楚

Python Click 学习笔记(转)

原文链接:Python Click 学习笔记 Click 是 Flask 的团队 pallets 开发的优秀开源项目,它为命令行工具的开发封装了大量方法,使开发者只需要专注于功能实现.恰好我最近在开发的一个小工具需要在命令行环境下操作,就写个学习笔记. 国际惯例,先来一段 "Hello World" 程序(假定已经安装了 Click 包). # hello.py import click @click.command() @click.option('--count', default

[简明python教程]学习笔记之编写简单备份脚本

[[email protected] 0503]# cat backup_ver3.py #!/usr/bin/python #filename:backup_ver3.py import os import time #source source=['/root/a.sh','/root/b.sh','/root/c.sh'] #source='/root/c.sh' #backup dir target_dir='/tmp/' today=target_dir+time.strftime('

3. 蛤蟆Python脚本学习笔记三字符串

3. 蛤蟆Python脚本学习笔记三字符串 本篇名言:"平静的湖面只有呆板的倒映,奔腾的激流才有美丽的浪花!幸福不是靠别人来布施,而是要自己去赢取!生命的意义在不断挑战自己,战胜自己!" 这个本来放在昨天的,由于昨晚又太晚了,所以就搁在这里了.赶紧看看吧. 字符串两边都用双引号或者单引号包起来.否则就使用转移符号来转移一下. 输入在一起可以直接拼接. 欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/48112507

1.蛤蟆Python脚本学习笔记一环境搭建

1.蛤蟆Python脚本学习笔记一环境搭建 蛤蟆一直在想在工作的时候能不能有一个牛逼的工具来让自己工作更加轻松和快乐.用过C, C++, C#, JAVA,  SHELL,TCL,汇编,BAT等,感觉这些都是需要的时候能发挥作用,不能和我想象的一样.突然有一天,感觉Python实在不错,那么就和小伙伴们一起乐呵乐呵呗.万事开头难,我们先来搭建环境吧. 欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/48058315 1. 相关

[简明python教程]学习笔记2014-05-05

今天学习了python的输入输出.异常处理和python标准库 1.文件 通过创建一个file类的对象去处理文件,方法有read.readline.write.close等 [[email protected] 0505]# cat using_file.py #!/usr/bin/python #filename:using_file.py poem='''Programing is fun when the work is done use Python! ''' f=file('poem.

[Python][MachineLeaning]Python Scikit-learn学习笔记1-Datasets&amp;Estimators

Scikit-learn官网:http://scikit-learn.org/stable/index.html Datasets 标准的数据集格式为一组多维特征向量组成的集合.数据集的标准形状(shape)为二维数组(samples, features),其中samples表示数据集大小,features表示其中特征向量的维数. 使用时可使用shape方法查看数据集 >>> from sklearn import datasets >>> iris = dataset

Python scikit-learn 学习笔记—环境篇

Python scikit-learn 学习笔记-环境篇 近来闲来无事,也面临毕业季.这段时间除了做毕业设计,和同学再多吃几顿饭玩玩游戏之外.剩下的时间浪费着实可惜.想着以后研究生还要读三年,不如现在多看看书或者别的资料.正逢最近参加阿里巴巴大数据比赛,趁机学了一阵Python 数据挖掘包scikit learn,估计以后说不定会用到,所以先行记录下来,分享给大家. 先说一下这段时间对sklearn的理解.这一个数据挖掘包给我最直观的感觉就是简易.这个挖掘包的一些算法核心编码部分是借鉴别的单独算

Python个人学习笔记四

                                        本节主要学习python语言中网络相关知识. 一 主要文件和目录在Urllib的request.py模块下面.其中支持SSL加密方式访问. 下面我们看看其中的主要类和函数吧. 先看看源码吧. def urlopen(url, data=None, timeout=socket._GLOBAL_DEFAULT_TIMEOUT, *, cafile=None, capath=None, cadefault=False):

Python个人学习笔记五

                                    本节主要学习Python语言的文件处理相关知识 一 第一种python有一系列API默认直接可以引用的函数,这里文件读取函数open在下列表 The Python interpreter has a number of functions and types built into it that are always available. They are listed here in alphabetical order.