python基础
迪迦张
这个作者很懒,什么都没留下…
展开
-
day 31死锁和递归锁
day 31死锁和递归锁1.死锁和递归锁所谓死锁:是指两个或两个以上的进程或线程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程#科学家吃面问题from threading import Thread,Lockimport timelock1=Lock()lock2=lock1def eat1(name): lock1.acquire() print('%s原创 2021-09-03 21:28:01 · 110 阅读 · 0 评论 -
day29 进程锁Queue队列
day29 进程锁Queue队列进程锁from multiprocessing import Process,Lockimport os,timedef task(i,lock): lock.acquire()#上锁 print('进程进来了序号为:%s id号为:%s'%(i,os.getpid())) print('进程出去了序号为:%s id号为:%s'%(i,os.getpid())) time.sleep(2) lock.release()#解锁原创 2021-09-02 08:46:23 · 95 阅读 · 0 评论 -
day 28 网络编程
day 28 网络编程1.进程概念1.1什么是程序 程序是永久的,做事的过程,没有生命周期 死的,永久存放在那 1.2什么是进程 process进程是是系统进行资源分配和调度的基本单位,是操作系统结构的基础,进程是线程的容器,进程里面可以开线程,进程可以说是一个过程,是动态的,他不是干活的,真正干活的是线程,进程是一个实体,每一个进程都有自己的地址空间调用一次程序,就会出现一个进程 进程是动态的,有生命周期例子:菜谱是程序 死的,做菜的过程就是进程, 厨师是线程,是干活的,#进程调度算法原创 2021-08-31 22:02:05 · 61 阅读 · 0 评论 -
day27 网络编程
day27 网络编程cs 架构和bs架构C/S分为; Client:客户端, Server:服务端 #植物大战僵尸,qqB/S分为 Browser:浏览器, Server:服务器 #淘宝taobao.com,京东 jd.com#本质B/S也是C/s架构 OSI七层协议七层划分为:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层五层划分为:物理层,数据链路层,网络层,传输层,应用层#传输层:TCP协议和UDP协原创 2021-08-30 19:45:16 · 110 阅读 · 0 评论 -
day25 组合 mixins机制 内置函数 反射 异常
day25 组合 mixins机制 内置函数 反射 异常组合# 解决类与类之间代码冗余问题: 1. 继承 2. 组合 属性的值指向另一个类实例化的对象 组合:一个对象拥有一个属性, 属性的值必须是另外一个对象继承满足的是:什么是什么的关系 # is-a 人是动物,猪是动物 狗是动物组合满足的是:什么有什么的关系 # has-a 人会说话 思考,自己独有的练习class People(): def __init__(self,name,blood,armor原创 2021-08-29 16:38:01 · 128 阅读 · 0 评论 -
day24 面向对象三大特征
day24 面向对象三大特征封装class Student(): school = 'SH' name = 'egon' # 当调用类的时候自动触发的函数 def __init__(self, name, age ,gender): self.name = name self.age = age self.gender = gender#之前的类一直是封装的 一直用到了封装继承# 1.什么是继承? 继原创 2021-08-25 19:31:04 · 62 阅读 · 0 评论 -
day23面向对象小案例
day23面向对象小案例1.案例"""题目: 定义一个类,产生一堆对象 要求: 要有一个计数器,记录一共差生了多少个对象"""class Student(): count = 0 def __init__(self,name,age): self.name=name self.age=age Student.count+=1 #count+1相当于把属性+1 变化时候调用类的对象都变化stu1=St原创 2021-08-24 18:31:12 · 67 阅读 · 0 评论 -
day22 面向对象,面向过程 类与对象
day22 面向对象,面向过程 类与对象面向过程概念 面向过程核心是过程二字,过程就是先干什么,在干什么,最后干什么 eg: 1. 开大冰箱门 2. 把大象放进去 3. 把门关上 eg1: 流水线生产饮料 优点:复杂的问题简单化,进而流程化 缺点:扩展性差,可维护性差 应用场景:应用在扩展性要求不高的地方, eg:安装包的使用 案例: 用户注册: 1. 用户输入用户命名, 密码 2. 验证参数 3. 写入数据注册成功面向对象概念""" 核原创 2021-08-24 08:46:50 · 79 阅读 · 0 评论 -
day20 day21ATM+购物车
day20 day21ATM+购物车start 开始文件from core import srcif __name__ == '__main__': src.main()用户视图层 core下的src.pyfrom interface import userfrom interface import backfrom interface import shoppingfrom db import db_handlerfrom lib import commonuser_da原创 2021-08-23 14:48:44 · 63 阅读 · 0 评论 -
day 19
day19 ATM+购物车src主程序# 主程序import osimport jsonfrom conf import settingsfrom common import common# 定义公用类 username登录名字 is_login登录状态user_data = { 'username': None, 'is_login': False}# 退出功能def loginout(): print('\033[1;31m退出成功\033[0m')原创 2021-08-19 08:39:41 · 74 阅读 · 0 评论 -
day 18 其他不常用模块
day 18 其他不常用模块猴子补丁import json # ujsonimport ujsondef monkey_patch(): json.loads = ujson.loads json.dumps = ujson.dumpsmonkey_patch()import shelve# 序列化f = shelve.open(r'sheve.txt')f['stu1_info'] = {'name': 'EGON', 'age': 28, 'hobby':原创 2021-08-17 19:15:53 · 60 阅读 · 0 评论 -
day17 常用模块的使用
day17 常用模块的使用1. time模块import time*一*#时间戳--》结构化时间--》格式化的字符串时间-----------------------------------------------------------------------------res1=time.localtime(654126574) print(res1 )#res1====time.struct_time(tm_year=1990, tm_mon=9, tm_mday=24, tm_hou原创 2021-08-16 20:44:21 · 88 阅读 · 0 评论 -
day 16 循环导入问题 模块搜索路径的优先级 软件开发目录规范 包的使用 ATM简单部署
day 16 循环导入问题 模块搜索路径的优先级 软件开发目录规范 包的使用 ATM简单部署1.循环导入问题 循环导入问题指的是在一个模块加载/导入的过程中导入另外一个模块,而在另外一个模块中又返回来导入第一个模块中的名字,由于第一个模块尚未加载完毕,所以引用失败、抛出异常,究其根源就是在python中,同一个模块只会在第一次导入时执行其内部代码,再次导入该模块时,即便是该模块尚未完全加载完毕也不会去重复执行内部代码解决方法:导入语句放到最后,保证在导入时,所有名字都已经加载过解决方法2:导入语句原创 2021-08-13 19:02:45 · 76 阅读 · 0 评论 -
day15 内置函数 模块
day151. 三元表达式x=5y=6 #成立结果res= 'ok' if x>y else 'no' # 三元指的是 成立返回结果,,条件 不成立返回结果print(res) #输出结果为:no 2.内置函数#### =============================================重点intfloatstrlisttupledictsetboolbytes s = frozenset({1,2,3})原创 2021-08-12 16:49:18 · 65 阅读 · 0 评论 -
day14 添加多个装饰器 函数递归 递归实现二分法,匿名函数
day14 添加多个装饰器 函数递归 递归实现二分法,匿名函数练习自己实现range功能#定义自己的rangedef my_range(start,stop,step): #三个参数 初始位置 结束 步长 while start<stop: #开始<结束 执行下面代码 yield start #yield返回一个生成器 自定义迭代器 start+=原创 2021-08-11 17:09:18 · 67 阅读 · 0 评论 -
day13 装饰器 迭代器
day13 装饰器 迭代器1.装饰器1.1什么是装饰器 装饰器就是装饰别人的工具,具体是指为被装饰者添加新功能,为一个新函数添加新功能1.2为何要用装饰器 (开放封闭原则) 为了不修改被装饰者的源代码以及调用方式的前提下,为被装饰着添加新功能1.3如何实现装饰器 通过这个模板来实现具体看实际情景添加一些代码 def outter(func): def wrapper(*args,**kwargs): res=func(*args,**kwargs)原创 2021-08-10 16:24:25 · 98 阅读 · 0 评论 -
day12 *与**、函数嵌套、对象、作用域、闭包函数
day12 与*、函数嵌套、对象、作用域、闭包函数1.args(*)与kwargs(**) 在函数里面调用函数,用args和kwargsdef index(a,b,c): print(a,b,c)def wrapper(*args,**kwargs): # args=(1,2,3) kwargs={} index(*args,**kwargs) # index(*(1,2,3) ,**{}) # index(1,2,3) #index(b=2,c=3,a原创 2021-08-09 19:20:09 · 56 阅读 · 0 评论 -
day11 函数基础
day11 函数基础1. 函数基础1.1 什么是函数 函数是保存代码的工厂,也可以说是一个保存代码的容器,把具体功能封装到一个函数里面 方便以后调用 1.2为何要用函数 为了减少代码冗余,增加代码可读性 为了便于维护 1.3如何用函数 1.3.1定义函数 语法 定义函数发生的事情 函数的使用原则 先定义.后调用 #语法 def 函数名(形参1,形参2.....): #形参可有可无 看具体情况 ```原创 2021-08-06 19:29:18 · 114 阅读 · 0 评论 -
day10 文件打开模式 读写方式,指针移动
day10 文件打开模式 读写方式,指针移动1.文件打开模式分为1.控制文件读写内容 :t:(默认)以字符串为单位,必须指定encoding参数 操作文本的 b:无论读写都是以bytes为单位也就是二进制,不需要指定encoding参数, 操作图片视频等也可以操作文本,@但是读取操作需要指定decode,@写入操作需要encode 字符编码 读操作需要把数据在硬盘拿出来解码 写操作需要把数据存进去 前提需要编码#ps:如果用b就没有encoding原创 2021-08-05 17:08:56 · 174 阅读 · 0 评论 -
day09 字符编码和with 和文件打开模式
day09 字符编码和with 和文件打开模式1.字符编码1.1 什么是字符编码?人类在与计算机交互时,用的都是人类能读懂的字符,如中文字符、英文字符、日文字符等1.2 字符编码表的发展史 (了解)一、一家独大 二 、诸侯割据、天下大乱 三、分久必合 逐渐统一1.3 编码与解码由字符转换成内存中的unicode,以及由unicode转换成其他编码的过程,都称为编码encode由内存中的unicode转换成字符,以及由其他编码转换成unicode的过程原创 2021-08-04 16:44:20 · 119 阅读 · 0 评论 -
day 08 字典型集合字符处理简单介绍
day 08字典型# ======================================dict基本使用======================================# 1、用途:# 2、定义方式:在{}内用逗号分割开多个元素,每个元素都是key:value的形式 其中value可以是任意类型,而key必须是不可变类型,通常是字符串类型 #3常用方法dic = { 'name': 'xxx', 'age': 18, 'hobbie原创 2021-08-03 19:18:15 · 81 阅读 · 0 评论 -
day07基本数据类型常用方法
day071.可变不可变类型 值改变,内存地址不变,证明就是在改变原值 可变类型 比如int float str 值该变,内存地址也变,说明不是在改变原值,产生新的值,在修改新的值。说明不可变 比如列表,字典 类型, 一瓶水 瓶子不变 里面的水可以变2.基本数据类型#======================================int基本使用======================================#1、用途 人的年龄等#2、定义方式 a=1原创 2021-08-02 18:22:26 · 86 阅读 · 0 评论 -
day06 if判断while循环for循环
day06 if判断while循环for循环1.if判断1.1什么是if判断 如果 条件满足,就做某件事情, 如果 条件不满足,就做另外一件事情,或者什么也不做1.2为何要用if判断 为了让计算机像人一样可以去判断1.3如何用if判断 if 条件1: 子代码 子代码 子代码 elif 条件2: 子代码 子代码 子代码 else: 上述条件都不满足执行的子代码原创 2021-07-30 16:48:17 · 78 阅读 · 0 评论 -
day05 python基础内存管理机制,基本运算符,与用户交互
day05 python基础内存管理机制,基本运算符,与用户交互1.内存管理机制1垃圾回收机制GC#引用计数 x=18 #值18的引用计数为1y = x # 值18的引用计数为2l = [111, x] # 值18的引用计数为3减少用del 比如del(x),切断x指向18的引用 如果一个值没有任何引用指向他。 那他就是垃圾但是循环引用的,虽然没有直接引用,但是有间接引用一直指向他#分代回收如果指向一个值有很多变量,那么系统执行会很繁重,效率低下,比如老师检查原创 2021-07-29 15:37:14 · 133 阅读 · 1 评论 -
python语法入门
day02 python语法入门入门 注释''''我是多行注释一般写在文档开始的最上面'''# 我是单行注释 常用的是单行注释1.变量 指的是可以变化的量,变指的是事物的状态是可以发生改变的,量指的是事物的状态1.定义: 例 age=13#1.1变量名:用来访问变量值 age就是变量名#1.2赋值符号= :把变量值的内存地址绑定给变量名 =就是赋值符号#1.3变量值: 记录事物的状态,就是存到内存中的数据 13就是变量值 年龄等于原创 2021-07-28 18:06:54 · 121 阅读 · 0 评论 -
Python基础 ttypora基础操作
表示表题#号=一级标题 几级标题用几个号[python基础 ttypora基础操作]```表示用什么语言 比如python字体加粗** 搜索**-> 一个区域ssss粘贴过来有图片带上图片计算机分为五大部分运算器 --> 数学运算逻辑运算存储器 -->内存 :临时存储区 断电丢失外存 :硬盘 永久存储,数据不丢失控制器 cpu输入设备 鼠标 键盘输出设备 打印机 屏幕操作m系统分为L原创 2021-07-26 19:05:39 · 403 阅读 · 0 评论