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.

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

  1. 【原】Learning Spark (Python版) 学习笔记(三)----工作原理、调优与Spark SQL

    周末的任务是更新Learning Spark系列第三篇,以为自己写不完了,但为了改正拖延症,还是得完成给自己定的任务啊 = =.这三章主要讲Spark的运行过程(本地+集群),性能调优以及Spark ...

  2. Python Click 学习笔记(转)

    原文链接:Python Click 学习笔记 Click 是 Flask 的团队 pallets 开发的优秀开源项目,它为命令行工具的开发封装了大量方法,使开发者只需要专注于功能实现.恰好我最近在开发 ...

  3. 0003.5-20180422-自动化第四章-python基础学习笔记--脚本

    0003.5-20180422-自动化第四章-python基础学习笔记--脚本 1-shopping """ v = [ {"name": " ...

  4. Python Flask学习笔记之模板

    Python Flask学习笔记之模板 Jinja2模板引擎 默认情况下,Flask在程序文件夹中的templates子文件夹中寻找模板.Flask提供的render_template函数把Jinja ...

  5. Python Flask学习笔记之Hello World

    Python Flask学习笔记之Hello World 安装virtualenv,配置Flask开发环境 virtualenv 虚拟环境是Python解释器的一个私有副本,在这个环境中可以安装私有包 ...

  6. 获取字段唯一值工具- -ArcPy和Python案例学习笔记

    获取字段唯一值工具- -ArcPy和Python案例学习笔记   目的:获取某一字段的唯一值,可以作为工具使用,也可以作为函数调用 联系方式:谢老师,135-4855-4328,xiexiaokui# ...

  7. Python高级学习笔记

    Python高级学习笔记,此笔记中包含Linux操作系统.Html+CSS+JS.网络协议等. 所有思维导图为本人亲手所画,请勿用于商用. 大哥们,求点赞哦. 第一天笔记:链接 第二天笔记:链接 第三 ...

  8. Python入门学习笔记4:他人的博客及他人的学习思路

    看其他人的学习笔记,可以保证自己不走弯路.并且一举两得,即学知识又学方法! 廖雪峰:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958 ...

  9. Python 基础学习笔记(超详细版)

    1.变量 python中变量很简单,不需要指定数据类型,直接使用等号定义就好.python变量里面存的是内存地址,也就是这个值存在内存里面的哪个地方,如果再把这个变量赋值给另一个变量,新的变量通过之前 ...

  10. Python人工智能学习笔记

    Python教程 Python 教程 Python 简介 Python 环境搭建 Python 中文编码 Python 基础语法 Python 变量类型 Python 运算符 Python 条件语句 ...

随机推荐

  1. I2C裸机驱动程序设计

    ① I2C(Inter-Integrated Circuit)总线是由飞利浦公司开发的两线式串行总线,用于连接微控制器及其外围设备 ② I2C总线有两根双向信号线 (1)SDA:Serial Data ...

  2. Oracle递归查询(start with…connect by prior)

    查询基本结构: select … from table_name       start with 条件1       connect by 条件2 1.建测试用表 create table test ...

  3. Removable Storage Devices文件夹删除方法

    Windows10的桌面上出现了名为“Removable Storage Devices”的文件夹删除方法 比较莫名奇妙,突然桌面上出现了名为“Removable Storage Devices”的文 ...

  4. cadence help文件库调出指令 :cdnshelp

    cadence help文件库调出指令 :cdnshelp 指令参数记录: Verilog 添加可编译文件后缀名 -vlog_ext +.h,.vh Verilog1995 添加可编译文件后缀名 -v ...

  5. 浅谈Cordova优缺点与环境部署(转载)

    浅谈Cordova优缺点与环境部署 作者:苏华杰 简介 Cordova是一个用基于HTML.CSS和JavaScript的,用于创建跨平台移动应用程序的快速开发平台.它使开发者能够利用iPhone.A ...

  6. Js框架设计之DomReady

    一.在介绍DomReady之前,先了解下相关的知识 1.HTML是一种标记语言,告诉我们这页面里面有什么内容,但是行为交互则要通过DOM操作来实现,但是注意:不要把尖括号里面的内容看作是DOM! 2. ...

  7. mysql并发更新问题

    问题背景: 假设MySQL数据库有一张会员表vip_member(InnoDB表),结构如下:   当一个会员想续买会员(只能续买1个月.3个月或6个月)时,必须满足以下业务要求: •如果end_at ...

  8. Android使用7牛云存储

    第一次使用这个云存储,话说7牛云存储大有来头!区别于国内外其他云存储,七牛自行研发的全分布式架构解决了其他云存储单一数据中心架构可能存在的风险,同时首创双向加速特性对数据上传下载均加速,使得数据访问速 ...

  9. pointer-events属性值详解

    其实早知道这个属性,但是一直没有去研究过.今天正好在twitter看到这个词,就去研究了下,正好解决了目前遇到的一个小难题,所以分享下.嗯,其实这是个比较简单的CSS3属性. 在某个项目中,很多元素需 ...

  10. 关于重绘and重排

    在研究CSS3动画性能的时候,看到了重排两个字. 突然想到自己虽然听说过这么个东东,但一直也没深入研究之. 趁着当下正好有研究的劲头,所以一不做二不休,把这个point也给学习了. 同样是一番查找资料 ...