随笔分类 - Python基础
摘要:GIL与普通互斥锁区别 # 1.先验证GIL的存在 from threading import Thread, Lock import time money = 100 def task(): global money money -= 1 for i in range(100): # 创建一百个线
阅读全文
摘要:消息队列 # 由于目前的知识储备还不够直接学习消息队列 所以先学习内置队列 """ 队列:先进先出(使用频率很高) 堆栈:先进后出(特定常见下用) """ # 以后我们会直接使用别人封装好的消息队列 实现各种数据传输 from multiprocessing import Queue q = Que
阅读全文
摘要:代码创建进程 """ 创建进程的方式有哪些 1.鼠标双击桌面一个应用图标 2.代码创建 创建进程的本质:在内容中申请一块内存空间用于运行相应的程序代码 """ # 第一种创建进程的方式 from multiprocessing import Process import time def task(
阅读全文
摘要:UDP协议 # 服务端 import socket server = socket.socket(type=socket.SOCK_DGRAM) # 自己指定UDP协议(默认是TCP协议) server.bind(('127.0.0.1', 8080)) msg, addr = server.rec
阅读全文
摘要:socket # 需求:编写一个cs架构的程序 实现数据交互 思考:需要编写代码操作OSI七层 相当的复杂 由于操作OSI七层是所有cs架构的程序都需要经历的过程 所以有固定的模块 socket套接字是一门技术 socket模块>>>:提供了快捷方式 不需要自己处理每一层 """ 以后我们写软件连s
阅读全文
摘要:软件开发架构 # 什么是软件开发架构 程序员在编写软件的时候应该遵循的架构设计 类似于我们写ATM和选课系统所采用的三层架构 # 软件开发架构的分类 1.C/S架构 C:client(客户端) S:server(服务端) """ 类比学习: 客户端相当于是需要体验服务的客人 服务端相当于是对外提供服
阅读全文
摘要:设计模式 在IT行业中设计模式总共有23种,可以分为三大类 # 1.创建型 # 2.结构型 # 3.行为型 '''设计模式是前辈们发明的,经过反复验证用于解决固定问题的固定套路''' # 我们目前不需要详细掌握(知识点还不够)了解即可 # 设计模式之单例模式(23种之一) 单例模式的意思是一个类只能
阅读全文
摘要:反射实际案例 # 利用面向对象编写系统终端功能 class WinCmd(object): def ls(self): print('windows系统正在执行ls命令') def dir(self): print('windows系统正在执行dir命令') def cd(self): print(
阅读全文
摘要:继承下的派生实际应用 import datetime import json class MyJsonEncoder(json.JSONEncoder): def default(self, o): # 形参o就是即将要被序列化的数据对象 # print('重写了', o) '''将o处理成json
阅读全文
摘要:动态方法与静态方法 # 动态方法 1.绑定给对象的方法 class Student: def run(self): print(self) # 类调用绑定给对象的方法:有几个参数就需要传几个参数 Student.run(123) # 对象调用绑定给对象的方法:会自动将对象当做第一个参数传入 obj1
阅读全文
摘要:面向对象编程的前戏 # 人狗大战小游戏 # 1.描述人和狗 '''描述人和狗的方式1:使用字典一个个描述''' dog1 = { 'name': '土狗', 'type': '田园犬', 'attack_val': 30, 'life_val': 200 } dog2 = { 'name': '狮子
阅读全文
摘要:项目开发流程 # 公司中的项目流程几乎都可以分为以下五个步骤 '''假设我们是一家外包公司 专门给别人编写软件''' # 1.需求分析 产品经理带着开发部门老大(架构师、研发经理)去客户公司寻求客户的需求 见客户之前架构师和研发经理会先大致了解一下客户的需求 然后琢磨出一套比较容易编写的流程 之后在
阅读全文
摘要:日志模块的主要组成部分 import logging # 1.logger对象:产生日志 (无包装的产品) logger = logging.getLogger('生日快') # 2.filter对象:过滤日志 (剔除不良品) # 针对过滤功能完全可以不看 因为handler之自带了基本的过滤操作
阅读全文
摘要:hashlib模块 # 什么是加密 将明文(人看得懂)数据通过一些手段变成密文数据(入看不懂) 密文数据的表现形式一般都是一串没有规则的字符串 # 加密算法 加密算法有很多种>>>(将明文变密文的内部规则) 算法的难易程度可以根据产生密文的长短来判断 越长意味着算法越复杂 # 什么时候使用加密 涉及
阅读全文
摘要:os模块 # 该模块主要是跟操作系统打交道 import os # 1.创建目录(文件夹) os.mkdir(r'aaa') # 使用相对路径 在当前执行文件所在的路径下创建一个aaa文件夹 os.mkdir(r'bbb/ccc') # mkdir只能创建单级目录 os.makedirs(r'ccc
阅读全文
摘要:re模块的说明 import re res = re.findall('a(b)c', 'abcabcabcabc') print(res) res = re.findall('a(?:b)c', 'abcabcabcabc') print(res) res = re.findall('(a)(b)
阅读全文
摘要:正则表达式了解 # 获取手机号 # 1.获取用户的手机号 phone_num = input('请输入您的手机号>>>:').strip() # 2.先校验是否是11位 if len(phone_num) == 11: # 3.再校验是否是纯数字 if phone_num.isdigit(): #
阅读全文
摘要:循环导入问题 # 两个文件彼此导入彼此 循环导入的时候极有可能出现某个名字还没有被创建就使用的情况导致报错 """在以后的编程生涯中 尽量去避免出现循环导入的问题""" 如果确实需要循环导入 那么需要确保双方使用的名字都必须'提前定义好' (一错再错的办法) 方式1:将导入模块的句式写在定义名字的下
阅读全文
摘要:生成器对象(自定义迭代器) 本质其实还是迭代器 只不过是我们自己通过写代码产生 也是有__iter__和__next__方法 def index(): print('我好开心啊!!!') yield 123 yield 666 '''生成器对象也是节省存储空间的 特性与迭代器对象一致''' """
阅读全文
摘要:常见内置函数 # 1.help() 查看注释信息 help(len) # 2.id() 返回一串相当于内存地址的数字 print(id('wql')) # 3.int() 类型转换、机制转换 # 4.isinstance() 判断数据类型 print(type('wql') is str) # 类型
阅读全文