python编程基础之二十九】的更多相关文章

栈和队列: 栈:先进后出,其他没多少特别之处了,一般可以用列表模拟栈,也可以用双端队列,封死一端. 队列:先进先出,也可以用列表模拟,但是一般用库函数,需要导collections 包:主要是为了解决模块重名的问题,包里面一定会有一个__init__.py文件,这个文件目的就是告诉系统这个文件夹是个包,这也是目录和包的区别 模块:模块是代码组织的一种形式,把功能相近的函数方法放到一块,一个.py都是一个模块,模块名需要把.py去掉, 通过sys模块中的sys.path,可以找到系统搜索模块路径,…
偏函数:当一个函数有大量的参数时候,调用时候非常不方便,于是就可以用偏函数解决,将一些参数固定(默认值),达到简化函数调用的目的 使用偏函数需要导入functools import functoolsdef test(a,b,c,d):    print(a, b, c, d)#从前面固定参数,使用位置参数就行,1=>a,2=>btest1 = functools.partial(test,1,2)test1(3,4)  #3=>c  4=>d 变量的作用域:作用域分为局部作用域L…
装饰器:说白了就是闭包,但是内部函数调用外部变量调用的是函数, 好处:就是在不用修改原函数代码的前提下给函数增加新的功能 装饰器有两种写法 第一种: #被修饰的函数 def say_hello(name): print('我就是人见人爱,花见花开的%s'%name) # 参数是被修饰函数 def wrapper(func): #1.定义装饰器 def inner(name): #2.定义闭包 在闭包中增加功能 print('-' * 50) func(name) #3.调用原函数实现原来的功能…
匿名函数:不用def 定义的函数,没有函数名 lambda只是一个表达式,函数体比def简单的多 lambda的函数体不再是代码块 lambda只有一行,增加运行效率 lambda [参数1][参数2][参数3], ... ,[参数n]  :  表达式 函数也属于一种类型:自定义的函数就是一个函数对象,函数名保存的就是函数的地址 def test():    print('我是测试函数') print(test)  #函数名是变量,指向了函数对象pf = test    #pf变量也指向了函数对…
函数: def 函数名([参数1],[参数2],[参数3], ... ,[参数n]): 函数体代码 函数名命名规则:同标识符命名相同,但是多了一点,不要和系统函数重名,其实所有命名都是一样只要符合标识符命名,然后不要和系统的各种名字相同就行,但是每一种命名一般都有自己不同的风格,函数名命名风格一般是用下划线分隔法 函数参数分为:位置参数,关键字参数,默认值参数,可变参数, 函数形参位置关系:从左至右应该依次是:位置参数,关键字参数,默认参数,可变参数 位置参数:就是要按照顺序,来传参, 关键字参…
字典:字典属于可变对象,但是不属于序列,内部是通过哈希方式存储的,内部保存的是一个个键值对key:value 字典的键是唯一的, 字典查找速度比较快 d1 = {}  #括号里面用键值对表示 d2 = dict() d3 = dict([(1,2),(3,4)]) d4 = dict({'1':'2','3':'4'}) 元素访问:字典名[key]  用键来访问 字典名.get(key) 用内置方法访问 添加元素:字典名[key] = value  当字典中找不到key的时候,就会直接增加一个键…
字符串的其他常用方法: ord(char)  # 返回char字符对应的码值,可以是中文字符 chr(x)  # 输入一个unicode码,返回对应的字符 eval(str)  # 将str 中的内容以代码的形式返回 repr(x) 返回对象的str格式,适合机器执行 字符串格式化 %格式化: %[flags][width][.precision]typecode format格式化: [fill][align][sign][#][width][.precision][type] fill :填…
DecisionTreeClassifier与红酒数据集 1 sklearn.tree.DecisionTreeClassifier class sklearn.tree.DecisionTreeClassifier (criterion=’gini’, splitter=’best’, max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features=None,…
进程: 一些资源的集合. 一个进程里面最少有一个线程,主线程.线程: 程序执行的最小单位. import threadingfrom threading import Threadimport time先执行主线程def run(): time.sleep(1) print('run...') start_time = time.time() # for i in range(5): #串行# run() # threads = [] for i in range(20): t1 = Threa…
问题:为什么python的多线程不能利用多核CPU,但是咱们在写代码的时候,多线程的确是在并发,而且还比单线程快原因:因为GIL,python只有一个GIL,运行python时,就要拿到这个锁才能执行,在遇到I/O 操作时会释放这把锁.如果是纯计算的程序,没有 I/O 操作,解释器会每隔100次操作就释放这把锁,让别的线程有机会 执行(这个次数可以通sys.setcheckinterval来调整)同一时间只会有一个获得GIL线程在跑,其他线程都处于等待状态1.如果是CPU密集型代码(循环.计算等…