Python学习笔记
admin
2023-07-31 01:52:52
0

Python学习笔记

1.List

[起始:结束:步长]  步长可以为负数,要求结束>起始  
倒序 a = b[::-1]  
相乘 [42] * 3 = [42, 42, 42]  
强制转成list list(\'abc\') = [\'a\', \'b\', \'c\']  
元组,不可变的list,(2,5,6)可作为dict的key或者函数的多个返回值  
可用函数 max(a) min(a) len(a) del a[2]  

method:

append & pop  
L.reverse()  
L.count(item)  
L.insert(5, item)  效果为item插入到L[5]  
L.sort()  
L2 = sorted(L1)  
L.sort(cmp, key=len, reverse=True)  

2.string

something about formatting…

method:

find,join,split,strip  
replace  
str.replace(ori, new)

3.dict

del d[key]

method:

pop & popitem
pop(key) return value,del item
popitem() return (key, value), del item
get & setdefault
get(key, defaultValue) 找到key返回value,找不到返回defaultValue
setdefault(key, defaultValue)找到key返回value,找不到返回defaultValue,并且插入键值对(key,defaultValue)
items()  keys()  values() 返回列表
iteritems()  iterkeys()  itervalues()  返回迭代器

for key, value in sorted(dict.items(), key=lambda x:x[1], reverse=False)
    print key + \'\\t\' + value

4.导入

import xxx
from xxx import  yyy, zzz
import xxx as x
from xxx import yyy as y

5 赋值

#序列解包
x,y = y,x
key, value = d.popitem()

6.if and for

三元运算 a if b else c 如果b为true执行a否则c

while xxx:
    pass

for item in xrange(100):
    pass
# xrange(n) == [0,1,...,n-1]

一些迭代方式

#1.并行迭代
names = [\"A\", \"B\", \"C\"]
ages = [12, 55, 33]
for name, age in zip(names, ages):
    pass
#zip 取最短的list
#2. 编号迭代:
names = [\"A\", \"B\", \"C\"]
for index, item in enumerate(names):
    pass

#break-else
for item in dict:
    if xxxx:
        break #find something and break the loop
else:
    pass # didn\'t find

7.函数&参数

def xxx(a):
    \'this is a introduction for xxx\'
    pass
#函数的注释 xxx.__doc__ == xxx.func_doc== \'this is a introduction for xxx\'

#指定参数
def xxx(arg1=\"a\", arg2=\"b\"):
    pass

#收集参数
def xxx(x, y, z=3, *t, **d):
    pass
# *t    接收剩余的未指定的参数,组成元祖
# **d  接收剩余的指定的参数,组成dict

#函数内修改全局变量
x = 1 #global val
def change_global():
    global x
    x += 1
#函数内局部变量名字会覆盖全局变量,调用全局变量时应用global()[\'val_name\']

map() 接受一个单参数函数,和序列作为参数  
filter() 接受一个bool返回型的单参数函数 和序列,留下序列中true的值
reduce()接受一个双参数函数 和序列,依次迭代下去
lambda x,y:x+y

8.面向对象

__metaclass__ = type #使用新式类
class Person:
    def setName(self, name):
        self.name = name
    def getName(self):
        return self.name
    def __inaccessible(self):
        #__开头方法表示私有
        pass
    member = 0 
    def init(self):
        Person.member += 1  #所有实例共享变量,注意区别于self.member += 1

# something about superClass
class Filter:
    def init(self):
        self.blocked = []
    def filter(self, sq):
        return [x for x in sq if x not in self.blocked]

class SPAMFilter(Filter): #SPAMFilter is subClass of Filter
    def init(self): # rewrite init()
        slef.blocked = [\'aa\']

#查看一个类是否是另一个类的子类
issubclass(SPAMFilter, Filter)
#查看一个instance是否属于一个类
isinstance(f, Filter)
#查看一个类的基类们 
SPAMFilter.__bases__
#查看一个对象属于哪个类
f.__class__

#多个superClass
class Test(Class1, Class2):
    pass
# Test 继承了Class1和2,其中Class1的优先级高(覆盖Class2的方法)

9.模块

__name__字段在主程序中为__main__在导入的模块中显示为模块的名字

# hello.py
def hello():
    print \"hello world!\"
def test():
    hello()

if __name__ == \"__main__\":
    #如果我是主函数,则从这里运行,否则作为被导入的模块,以hello.test()的形式被调用
    test():

导入自己的模块

# python解释器一般寻找模块的路径
import sys
print sys.path
# 添加新路径
sys.path.append(\'xxx dir\')

导入包

# 假设有如下结构的包drawing
# /drawing/
# /drawing/__init__.py
# /drawing/a.py
# /drawing/b.py
import drawing
#只能使用__init__.py
import drawing.a
#可使用drawing.a.xxx()
from drawing import a, b
#可直接使用a.xxx()

探索包与模块
dir()
__all__
help()
__doc__
__file__

10.文件IO,异常

11.test,config,log

上一篇:python中的is

下一篇:python中tuple的比较

相关内容

热门资讯

Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
Apache Doris 2.... 亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 版本已于...
python清除字符串里非数字... 本文实例讲述了python清除字符串里非数字字符的方法。分享给大家供大家参考。具体如下: impor...