Python基础
Fly_Fly_Zhang
初学java
展开
-
Python基础-pymysql的使用(数据库与py的连接)(21)
引入模块pip install pyMySQLConnection对象: 用于建立与数据库的连接构造方法和参数创建对象: connect()方法host参数:连接mysql主机的ip地址port:mysql主机的端口号user:用户名password: 密码charset:编码方式对象方法:close():关闭连接commit():提交rollback():放弃之前操作cursor():返回Cursor对象,用于执行sql语句并获得结果。Cursor对象执行sq原创 2020-05-20 15:44:43 · 613 阅读 · 0 评论 -
Python基础-协程(20)
协程概念:比线程更小的执行单元某个函数,可以在任何地方保存当前函数的一些临时变量信息,然后切换到另一个函数去执行进程和线程是系统切换,协程自己主动让出CPU协程的切换只是单纯的操作CPU的上下文,比线程的切换更快速1:N模式,就是让一个线程作为容器,里面放置多个协程IO密集型程序适用于协程,CPU密集型程序不适用于协程协程编程-greenletpy中greenlet模块对协程进行了封装安装模块:sudo pip install greenletfrom greenlet imp原创 2020-05-20 12:48:09 · 436 阅读 · 0 评论 -
Python基础-多线程(线程创建方式/线程同步/死锁问题/消息队列(Queue)/ThreadLocal)(19)
多线程概念线程是进程中一个“单一的连续控制流程”/执行路径线程被称为轻量级进程一个进程可以拥有多个并行的线程一个进程中的线程共享相同的内存单元/内存地址空间(可以访问相同的变量和对象),而且他们从同一个堆中分配对象(通信,数据交换,同步操作)由于线程间的通信是在同一地址空间上进行的,所以不需要额外的通信机制,这使得通信更简便并且信息传递的速度更快。线程几种状态多线程程序的执行顺序是不确定的,当执行到sleep时,线程将被阻塞(bloceed),到sleep结束后,线程进入就绪(runab原创 2020-05-19 11:01:19 · 368 阅读 · 0 评论 -
Python基础-fork/多进程/Process/进程池/消息队列(Queue)(18)
fork在unix/linux操作系统中,提供了一个fork()系统函数,它非常特殊。普通的函数调用,调用一次,返回一次,但是fork()调用一次,返回两次。因为操作系统自动把当前进程(父进程)复制了一份(子进程),然后分别在父进程和子进程内返回。子进程永远返回0,父进程返回子进程的ID。一个父进程可以fork()出很多个子进程。因此,父进程要记下每个子进程的ID,而子进程只需要调用getppid()就可以拿到父进程的id。getpid()可以拿到当前进程id父进程、子进程执行顺序没有规律,完全原创 2020-05-18 21:08:28 · 479 阅读 · 0 评论 -
Python基础-内建函数/partial(偏函数)/wraps函数/pdb调试(调试器)(17)
内建函数:在py中输入dir(_ builtins _)可以看到py解释器默认加载的属性和函数,这些函数称为内建函数,这些函数因为在编程中使用较多,因从py解释器使用c语言实现了这些函数,启动解释器时默认加载。常用内建函数range(start,stop[,step]): 计数从start开始,默认从0开始,到stop结束,不包含stop,步长为step,默认为1map(function,sequence[,sequence],…)根据提供的函数对指定序列做映射,序列可以为多个序列。作用就是把序列原创 2020-05-13 22:19:04 · 590 阅读 · 0 评论 -
Python基础-对象池/内存管理机制/属性访问拦截器(16)
对象池py为了优化速度,使用了小整数[-5,257)对象池,避免为整数频繁申请和销毁内存空间,就是说,比如5这个数,我们频繁使用。为了不频繁创建和销毁5这个对象,所以就创建了一个小整数对象池将5放进去,永远不会被销毁。如果使用,被引用即可。同理,单个字符因为因为使用频繁,也有自己的对象池。常驻内存。每一个大整数,均创建一个新的对象对于字符串中的单个单词,不可修改。默认开启intern机制,采用引用计数机制共用对象,计数为0则进行销毁。内存管理机制(垃圾回收GC)为新生成对象分配内存识别垃圾原创 2020-05-13 17:26:25 · 308 阅读 · 0 评论 -
Python基础-动态语言特性/类装饰器(15)
动态语言特性它是一类可以在运行时改变其结构的语言,如新的函数,对象,甚至代码都可以被引进,已有的函数可以被删除或是其他结构上的变化。动态语言:可以在运行过程中修改代码静态语言:编译时已经确定好代码,运行过程中不可以被修改为对象动态添加属性类定义时没有此属性,在对象创建后,动态添加此属性In [1]: class Person(object): ...: def __init__(self,name): ...: self.name=name ...:原创 2020-05-13 16:17:11 · 300 阅读 · 0 评论 -
Python基础-生成器/迭代器/作用域/闭包/装饰器(14)
生成器(generator)py中把一边循环一边计算的机制称为生成器,你不调用它,他就不进行计算。使用next()函数获取生成器的下一个返回值生成器是一个对象当迭代到生成器最后一个对象时,继续迭代会抛出StopIteration异常生成器是可以使用for循环的,因为生成器是可迭代对象。生成器只能使用一次特点:节约内存迭代到下一次的调用时,所使用的参数都是第一次所保留下来的生成器的创建:lambda表达式创建生成器a=(x for x in range(2))%创建生成原创 2020-05-13 14:21:46 · 375 阅读 · 0 评论 -
Python基础-python中的访问权限(私有化)/property使用(get/set方法)(13)
几个概念:名字重整:比如有一个Test类,定义了私有属性__name,并实例化了对象a,无法调用该属性。我们可以看到__name属性的名字被变成_Test__name,这就是名字重整。魔法属性/方法:魔法方法就如同它的名字一样神奇,总能在你需要的时候为你提供某种方法来让你的想法实现。魔法方法是指Python内部已经包含的,被双下划线所包围的方法,这些方法在进行特定的操作时会自动被...原创 2020-05-04 19:14:59 · 504 阅读 · 0 评论 -
Python基础-python中的深拷贝和浅拷贝(12)
概述:浅拷贝是对于一个对象的顶层拷贝,通俗的理解是:拷贝了引用,并没有拷贝内容,就是对要拷贝的对象复制(复制属性和对象引用)一份,但是对于其内部的子对象就不复制了,而是直接引用深拷贝是对于一个对象所有层次的拷贝,并将其存在新开辟的空间里。等号只是将该对象的引用复制一份,任何一个引用的对象发生变化,其它引用的对象也会发生变化,因此多个引用本身就是指向一个对象。注意:is和==区别is...原创 2020-05-04 16:17:29 · 236 阅读 · 0 评论 -
Python基础-模块的创建和使用(11)
模块的导入py中模块的导入相当于java中jar包的引入,py有以下模块的导入方式import 模块名这种方法导入模块,在应用模块中的功能时,需要加上模块名import randomprint(random.randint(0,5))from 模块 import 模块中类/方法/属性这种方法不需要在写模块名,如果调用多个方法,import后的内容可以使用逗号隔开from...原创 2020-05-03 21:54:30 · 569 阅读 · 0 评论 -
Python基础-异常处理(10)
几个注意:当某行代码抛出异常后,它后面的代码不会被执行,如果异常代码在try-except块中,并且被except捕获,则except后面的代码可以执行Exception是所有异常的父类,因此Exception可以捕获所有异常自定义异常必须继承Exception或者其子类finally块只有有,就必须被执行,其在最后执行当有else块时,只有不发生异常,else代码才会被执行rais...原创 2020-05-03 17:24:17 · 322 阅读 · 0 评论 -
Python基础-单例模式/简单工厂模式/工厂方法模式(9)
单例模式:一个类只创建一次。单例模式1:缺点是若对象需要传值,只会得到第一次的传值属性。#单例模式1 通过类方法获取实例#单例模式1 通过类方法获取实例class User(object): __instance=None def __init__(self,name): self.name=name @classmethod #类方法 ...原创 2020-05-02 22:14:00 · 429 阅读 · 0 评论 -
Python基础-类的继承/属性方法(8)
什么是类的继承?类的继承就是让子类拥有父类的属性和方法。类继承格式:class 子类名(父类1,父类2)几个注意:py支持多继承子类继承的父类只能初始化一次,如果父类1和父类2有共同的父类或者祖先类,则类初始化的时候会失败。当父类具有相同方法时,会调用最先继承的父类中的方法,如果要指定父类,则需要重写此方法,并通过父类名.方法名来调用指定父类方法。class Parent:...原创 2020-05-01 21:10:41 · 662 阅读 · 1 评论 -
Python基础-类和对象(7)
类的创建和调用py中,每个类都有自己的属性和方法,是这个类所有实例共享的,每个实例都可以调用所有的属性和方法。类的创建和调用步骤:类的创建:class语句类的属性创建:赋值语句实例方法创建:def method(self):类的实例化: 实例名= 类名调用类的属性:实例名.属性调用类的方法: 实例名.方法()类的创建需要注意的是,类中的方法调用类中的属性或者方法时,必须通过se...原创 2020-04-05 22:29:40 · 237 阅读 · 0 评论 -
Python基础-高级特性【迭代/列表生成式】(6)
迭代:任何可迭代对象都可以使用for循环进行进行迭代。判断当前对象是否有可迭代性list,tuple.dict,string等对象都是可迭代的,但是数字不行。from collections import Iterablea=[1,2,3,4]print(isinstance(a,Iterable))dict={'a':1,'b':20,'c':3}#对key值进行迭代,顺序不唯...原创 2020-04-05 21:45:48 · 249 阅读 · 0 评论 -
Python基础-函数/函数式编程/lambda表达式/装饰器(5)
函数:函数也是一个对象,函数可以用来保存一些可以执行的代码,并且可以进行多次调用。函数创建:def 函数名([形参…])def fun(): print('进来了')print('要调用了')fun()当函数有返回值时:def fun(a,b,**c): return 'rel'print(fun(a=1,b=3,c=2,e=4,h=6)) #relpyt...原创 2020-03-31 23:11:20 · 447 阅读 · 0 评论 -
Python基础-列表/元组/字典/集合(4)
1.序列(sequence):序列是py中最基本的一种数据结构可变序列列表不可变序列字符串元组序列基本操作:+可以将相同的序列拼接成一个序列*: 将序列重复指定次数in : 检查元素是否存在于指定列表/元组中not in:检查元素是否不存在指定列表/元组中list=(12,None,'sh',True,3,5,6)+(5,5)print(list*5)pri...原创 2020-03-30 20:29:20 · 515 阅读 · 0 评论 -
Python基础-条件判断/循环语句(3)
py代码在执行时是按照自上而下的顺序执行的,通过流程控制语句可以让程序反复执行。条件判断语句if语句语法:if 条件表达式 : 代码块代码块:代码块中保存着一组代码,同一个代码块中的代码,要么都执行要么都不执行。py的代码块是以缩进开始,缩进结束。缩进有两种方式:使用tab键使用空格(四个)py推荐使用空格,py代码中的缩进方式必须统一。# 一行也需要缩进a=T...原创 2020-03-28 20:36:46 · 315 阅读 · 0 评论 -
Python基础-对象/运算符(2)
对象:py是一门面向对象的语言,在程序运行时,所有的数据都是存储在内存当中再去运行的。对象就是内存中专门用来存储数据的一块区域。对象实际上就是一个容器,专门用来存储数据。数值,字符串,布尔值,None都是对象。对象分为可变对象和不可变对象,可变仅针对值。对象结构:每个对象都要保存三种数据.id(标识):id用来标识对象的唯一性,每个对象都有唯一的id。可以通过id()函数查看对象的id...原创 2020-03-27 21:32:15 · 336 阅读 · 0 评论 -
Python基础-数据类型/类型转换(1)
1.注释:单行注释# 注释1多行注释'''注释2'''"""注释3"""2.语句:一条语句一行,结束不加分号一行显示多条语句,语句之间加分号一条语句需要多行显示时,用====进行换行3.缩进:py中一样代码的开头不能随便缩进(空格或制表符)py语法要求必须有缩进的位置,一定要加缩进4.标识符:py中使用变量不需要声明,直接赋值,不能使用没有赋...原创 2020-03-27 19:05:03 · 382 阅读 · 0 评论