Python
文章平均质量分 88
Python从0开始
第五本日记
这个作者很懒,什么都没留下…
展开
-
Python学习24--协程
一、基本概念线程、进程都是系统级别的,是系统来统一调度分配时间片协程是程序级别的,是开发者根据自己的需要调度生成器可以做到从一段代码执行中,跳入到另外一段代码协程其实就是生成器实现的,协程可以利用yield来进程程序之间的切换,或者调度。协程的优势:1、协程有很高的执行效率。只需要程序内部的yield来对程序进行自身控制,不需要线程的切换开销2、协程没有线程安全问题。协程的特点:协程需要激活:next或则send(None)协程的缺点:协程+多进程可以应用多核cpu,无法自己使用多核c原创 2021-04-27 14:35:16 · 115 阅读 · 0 评论 -
Python学习23--多线程和多进程
一、基本概念1. 异步和同步关注的是消息通信机制,行为方式,描述的是多个(线程、进程)相互之间的关系。同步:调用者主动等待被调用者返回结果,在没有返回结果之前就一直专职等待。比如:打电话,拨号之后,什么都不干,专职等待,拨号的动作和其他的动作之间“同步关系”异步:调用者发送请求之后,不会专职等待被调用者返回结果,而是当被调用者有结果之后,通知调用者,然后调用者再回头继续做刚才的任务。比如:打电话,拨号了之后,我放免提,继续编代码,什么时候接通了,什么时候开始说话。2. 阻塞和非阻塞关注的是原创 2021-04-24 14:59:28 · 230 阅读 · 0 评论 -
Python学习22--网络编程和几个高阶函数
一、计算机网络编程定义:将地理位置不同具有独立功能的多台计算机,通过通信线路(不是通过硬件存储),来进行互相通信实现数据的共享。网络的七层结构:应用层(最贴近用户使用者):http ftp表示层会话层传输层: tcp udp网络层:ip数据链路层(设备和驱动)物理层(最贴计算机的一层)HTTP协议:超文本传输协议IP协议:互联网传输协议TCP协议:传输控制协议,安全有效的协议,基于连接的协议,点对点的通道,TCP协议可以保证一方发送后,外一方一定能准确(按接收顺序)接收进行三次原创 2021-04-22 17:10:28 · 149 阅读 · 1 评论 -
Python学习21--线程和进程
因为全局解释器锁的存在,在python里经常使用多进程来代替多线程。可以避免受GIL的限制一、进程的创建进程创建有如下三种方式:1、通过multiprocessing下Process类创建子进程;2、继承Process类,重写run方法3、进程池需要注意的是:进程一定要写在“主程序”中,因为windows系统在创建子进程的时候,会将当前的模块导入,如直接写在主程序中,会报错,如下所示:import multiprocessingdef m(): passp1 = multipr原创 2021-04-20 09:47:42 · 181 阅读 · 1 评论 -
Python学习20--线程
一、基本概念程序:程序可以理解成是一系列的指令集,程序是静态进程:当程序运行时,会创建一个进程线程:进程基本执行单元,一个进程至少有一个线程进程和线程之间的关系:一个线程只属于一个进程,一个进程包含多个线程进程资源、线程的对比:进程具有独立的空间和系统资源线程没有独立的空间和系统资源,同一个进程下的多个线程共享该进程下的资源问题:多线程中对于共享资源修改的问题—多线程同步问题,线程不安全二、多线程多线程在单核CPU下的执行状况:从宏观上可以认为是并行,从微观上看是串行多线程在多核C原创 2021-02-24 20:37:32 · 187 阅读 · 0 评论 -
Python学习19--几种排序算法的实现
一、稳定排序和不稳定排序稳定排序:相同的两个元素经过排序后相对位置不变不稳定排序:相同的两个元素经过排序后相对位置发生改变二、冒泡排序原创 2021-02-22 22:49:41 · 154 阅读 · 0 评论 -
Python学习18--常用的数据结构以及查找方法实现
一、常用的数据结构1、数组数组在内存中是连续存储,通过起始位置和偏移量来对其中每一个元素进行访问;优点:随机访问很好。资源使用少缺点:插入或者删除元素比较麻烦。第一个元素:起始地址+0偏移量第二个元素:起始位置+1偏移量第i个元素: 起始位置+(i-1)*偏移量时间复杂度 :数组的随机访问元素时间复杂度O(1):常数时间复杂度线性存储:每个元素都有一个前驱元素,一个后续元素2、链表链表是线性存储的数据结构,跟数组不同在于,链表不是连续的,链表中的每一个点被称为【节点】,每个节点都包含原创 2021-02-07 15:30:50 · 312 阅读 · 0 评论 -
Python学习17-正则表达式
一、简述正则表达式:对【指定的字符串】与【模式】之间进行模式匹配,可以获得模式匹配的结果。模式:可以是普通字符串,也可以是含有特殊意义的字符(正则表达式)python中re模块是来支持正则表达式re.search(模式,待搜索的字符串),返回的是匹配对象匹配对象下的group方法可以返回匹配的内容使用方法如下:import rer = re.search("abc","abccd")if r: print(r.group())else: print("没有匹配")输出原创 2021-01-30 15:03:25 · 231 阅读 · 1 评论 -
Python学习16--文件和上下文管理器
操作系统的文件分为:(1)文本文件:.txt(2)二进制文件:.mp3、.wma、.doc一、获取文件对象运用open函数来获得 文件对象格式为:open(file,mode)file: 泛指文件和文件夹,相对路径:从当前路径开始的路径绝对路径:从盘符开始的路径如:“E:\test”mode模式说明:r:(1)读模式(默认模式),用来读取文件内容。文件指针在文件的开头。文件需要事先存在,否则会产生异常。w:(1)写模式,用来向文件写入数据。文件指针在文件的开头。如果文件存在,则覆盖文件原创 2020-08-02 19:38:54 · 258 阅读 · 0 评论 -
Python学习15--迭代器、生成器、装饰器
一、迭代器可迭代对象:可以进行遍历的对象,如:字符串、列表、元组、字节、字典、集合可迭代对象:Iterable迭代器:Iterator验证可遍历对象是可迭代对象:from collections.abc import Iterable,Iteratorprint(issubclass(list,Iterable))print(issubclass(tuple,Iterable))print(issubclass(str,Iterable))print(issubclass(bytes,It原创 2020-07-27 23:05:41 · 360 阅读 · 0 评论 -
Python学习14--错误和异常/Try_except
一、异常的概念错误:在程序的编译期就出现的异常:在程序的运行期,是因为程序没有按照正常或者期望方式执行【异常产生的时候,程序处理的处理方式】:在异常放生的位置,程序会创建异常类型的对象,“暂停”程序,从上下文中想寻找有没有异常处理的程序,如果有异常处理,那么会进入到异常处理程序(try except)。如果没有异常处理,那么异常会向上传播【异常的向上传播】:如果异常是在函数中产生,会传播给函数的调用者如果异常是在模块的顶级位置产生,会传播给引用这个模块的模块如下所示:def a():原创 2020-07-05 16:25:08 · 344 阅读 · 0 评论 -
Python学习13--几个常用的模块
一、math模块import math(1)pi:圆周率piprint(math.pi)输出:3.141592653589793(2)e:自然常数eprint(math.e)输出:2.718281828459045(3)ceil:向上取整a = 3.5b = -3.5print(math.ceil(a))print(math.ceil(b))输出:4-3(4)floor:向下取整a = 3.5b = -3.5print(math.floor(a))p原创 2020-06-29 22:22:30 · 366 阅读 · 0 评论 -
Python学习12--模块和包
一、模块1、基本概念物理的角度:一个文件就是一个模块。逻辑的角度:模块(功能划分)模块中可以定义的内容: 类、函数、变量模块的名字就是文件的名字,被存储在模块命名空间。划分模块的好处:(1)有利于项目按照功能进行划分,每个人负责一个模块,或者多个模块,方便协作开发。(2)模块提供了独立的命名空间(全局命名空间),可以解决命名冲突问题。(3)模块可以提供多人使用,提高程序的复用性。在python中一个模块可以支持多个class的建立2.模块的导入有两种方式模块的导入方式分别为:impo原创 2020-06-06 14:06:12 · 153 阅读 · 0 评论 -
Python学习11--面向对象
一、面向过程和面向对象面向过程:程序里面有大量的函数,每一个环节都是进行函数的调用。编程思想是按照执行时从头到尾的顺序来进行编程的面向对象:根据需求,划分不同的对象,将对象划分成若干个类,以对象的方式来进行方法或者行为的调用,不是以函数为单位,而是以对象为单位。举例说明:编写一个实现请假功能的代码块,大致流程为:员工请假—领导审批—人事记录1、以面向过程的思想编程:定义以下函数执行,伪代码如下:def 请假(员工,领导) passdef 撤销请假流程(员工,领导) passdef 审原创 2020-05-25 22:23:39 · 327 阅读 · 0 评论 -
Python学习10--习题1
一、如何判断输入的数是否是回文数:回文数如12321,个位与万位相同,十位与千位相同方法(1):利用字符串的逆整切片与原有字符串进行比较是否相等。如下:num = input("请输入一个数字:")new_num = num[::-1]if num == new_num: print("是回文数")else: print("不是回文数")方法(2):通过索引比较,并...原创 2020-05-03 13:55:57 · 378 阅读 · 0 评论 -
Python学习9--类和对象
一、相关概念1、对象: 对象也叫做实例。万物皆对象。 对象是具有行为和属性的。举例:桌子,椅子,你,你同桌,小猫,小狗。。。。属性: 名词行为: 动词2、类:一个类别,按照需求划分,把具有相同属性和行为的对象划分成一个类。学生管理系统, Student Teacher公交刷卡系统, Person ticket划分的时候,一般来说,相同类别的对象之间总是比不同类别的对象之间更加相似...原创 2020-04-20 16:21:42 · 445 阅读 · 0 评论 -
Python学习8--函数
一、函数的定义函数产生的背景:重复的需求 如:让控制台打印5行星星,每行5个;函数的定义:可以重复使用,用来实现单一或者多个“功能”的代码段,以功能为单位;函数的意义:提高程序的模块化管理,提高代码重复使用率;函数的分类:内置函数(内建函数),自定义函数;内建函数:如print自定义函数格式:def 函数名(【参数1,参数2】):函数体【return 返回值】函数名:大写字母,...原创 2020-04-19 15:57:54 · 428 阅读 · 0 评论 -
Python学习7--字典和集合
一、字典1、字典的定义字典名={key1:value1,key2:value2…}s = {"Tom":90,"Tim":80,"Kate":60}print(s,type(s))输出:{‘Tom’: 90, ‘Tim’: 80, ‘Kate’: 60} <class ‘dict’>字典查询速度快:字典的key会使用hash函数映射成一个hashcode(整数),has...原创 2020-04-17 16:35:40 · 572 阅读 · 0 评论 -
Python学习6--列表和元组
一、列表****数据类型:****序列—列表 list列表:可以存储多个元素的数据类型变量=[元素1,元素2…]1.列表的特性(1)列表是有序(2)列表中的元素可以是多种类型(3)列表中的元素是可变的2. 创建Li=[] 空列表Li=[元素,元素……]Len(li)求列表长度3. 操作(1)操作符in not in is is not < > ...原创 2020-04-15 19:42:52 · 1246 阅读 · 0 评论 -
Python学习5--编码问题、格式化和流程控制(选择和循环)
一、 程序执行的过程:(1)顺序执行:按部就班的执行(2)选择:在一些选择中取一种情况,执行,根据不同的条件,执行不同的代码段(3)循环:体现的是重复执行同一段代码二、选择(if)If 布尔条件:If 布尔条件返回True会执行的代码else:if布尔条件返回False会执行的代码注意: (1)if 能够单独存在,else不能单独存在(2)else没有条件(3)设置if条...原创 2020-04-13 20:43:11 · 253 阅读 · 0 评论 -
Python学习4--字符串以及字节
一、字符串的定义定义:由字符组成的序列,注意单个字符就是子串创建:变量=字符串方式:单引号、双引号、三引号单引号和双引号使用方式类似,交替使用的时候,会输出特殊的字符三引号自带换行空字符串 s=“” 空格“ ” 不一样转义“\”print('hello "world"')print("hello \"world\"")#加个又反斜杠即为转义print("\\")#\t \...原创 2020-04-09 16:27:27 · 526 阅读 · 0 评论 -
Python学习3--运算符
运算符:有特殊计算规则的符号参与运算的数据:操作数N元运算符:取决于使用的操作数的数量。运算符和操作数结合起来----表达式1. 算数运算符+(加) -(减) *(乘) /(除) % (取余) //(取模) **(幂)注意取模,商是向下取整注意-10//3和int(-3.3)的区别:int是向0取整,相当于舍掉小数点print(10//3) ~3print(-10//3)...原创 2020-04-08 20:28:02 · 806 阅读 · 0 评论 -
Python学习2--变量和数据类型
一. 变量变量的定义使用指定的名称来绑定特定的值。变量赋值变量名 = 变量值 (=代表赋值)变量名必须是大小写英文字母,和数字、_的组合,不能以数字开头变量在使用之前必须赋值,赋值之后才能被创建变量没有类型,我们可以使用一个变量,通过赋值,来指向不同的类型对象内存的理解以及赋值的理解例如:a=123(将123赋值给a)(1)首先在内存创建123,然后在内存创建a...原创 2020-04-07 16:45:21 · 551 阅读 · 0 评论 -
Python学习1--Python基础
第一章:python入门一、语言什么语言:人和人之间的沟通计算机语言:计算机的机器语言,人和计算机之间沟通的语言。按照级别分:1、机器语言:最底层,最低级的语言,计算机能看懂的语言 0 和 1,低电位和高电位2、汇编语言:计算机指令 add a b sub 2 13、高级语言:python java c c++,偏向人的语言计算机语言的执行方式:1、编译执行2、解...原创 2020-04-03 16:33:58 · 124 阅读 · 0 评论