Python
文章平均质量分 93
柏林墙
这个作者很懒,什么都没留下…
展开
-
python变量的复制、赋值、浅拷贝、深拷贝
Python中的变量 Python中的变量可以看作数值的一个标签,当给变量赋值时,该变量将指向该值域的存储空间,给该变量重新赋一个新值时,将释放当前值域的存储空间,指向另一个值域存储空间。 对于Python来说是以值域为内存分配对象,变量名只是指向该内存空间,当值域发生变化时,系统分配另外一块内存,该变量指向新分配的地址块,原来地址空间系统进行回收,该方式也就说明了为何python的变量可以为任何类型,而C/C++则是先给变量分配一块适当的大小,当值变化时,直接更新变量指向地址的内存块...转载 2020-09-18 15:28:59 · 881 阅读 · 0 评论 -
python基础之局部变量、全局变量、变量的复制、深拷贝、浅拷贝
一、局部变量和全局变量首先来谈一下变量的问题,主要是Python内在的变量处理机制,这里主要探讨一下局部变量和全局变量的问题:我们先看一下下面的代码会输出什么:# 代码段 1a = 7b = 5def f1(a): a += 1 print(a) print(b) f1(a) # 代码段 2def f2(a): ...转载 2020-07-25 09:18:31 · 500 阅读 · 0 评论 -
python正则表达式的贪婪与非贪婪匹配
默认正则表达式是贪婪地,在同时匹配多个时,默认最大值可以通过在表达式后加一个 ? 变非贪婪pattern = re.compile(r'h{3,5}')res = pattern.match('hhhhhh')print(res.group()) # 贪婪:hhhhhpattern = re.compile(r'h{3,5}?')res = pattern.match('hhhhhh')print(res.group()) # 非贪婪:hhhpattern = re.co.原创 2020-06-25 09:17:40 · 246 阅读 · 0 评论 -
python正则表达式基础语法
1. 转义字符字符描述\n换行符\r回车符\s空白字符:空格、制表符、换行符\S非空白字符2. 特殊字符字符描述( )子表达式[ ]中括号表达式|两项之间一个选择3. 限定符字符描述限定个数?0、1个字符.除换行外的任意1个字符*0或多个字符+1或多个字符{n}明确n个字符{n,}至少n个字符{n,m}n到m个字符4. 定位符原创 2020-06-24 23:18:51 · 101 阅读 · 0 评论 -
python正则表达式通过re模块使用方法
1. match 和 searchre.match(表达式, string, 选项).span() 只从开头开始匹配,存在则返回(起始位置,结束位置),否则返回Nonere.search(表达式, string, 选项).span() 全文搜索,存在则返回(起始位置,结束位置),否则返回None代码举例>>> re.match('com', 'www.baidu.com')>>> re.match('www', 'www.baidu.com').原创 2020-06-24 23:17:46 · 214 阅读 · 0 评论 -
python静态web服务器面向对象开发三重奏
1. 基础知识----http get请求报文—----请求行-----GET / HTTP/1.1 =>请求方法(方式)请求的资源路径http协议的版本----请求头----Host: www.itcast.cn => 服务器的主机ip地址和端口号,提示如果看不到端口号默认是80Connection: keep-alive => 和服务端程序保存长连接,当客户端和服务端有一段时间(3-5)没有进行通信,那么服务器程序会主动向客户端断开连接Upgrade-Insecure-原创 2020-06-20 17:54:35 · 277 阅读 · 0 评论 -
python网络编程之多任务的TCP服务端开发
需求同时多个客户端与服务器通信思路对原单任务的服务端改进的地方加入多线程从接收到数据开始建立连接循环建立多线程对于数据的接收和发送处理独立出来作为一个函数对于独立出的函数创建子线程并启动原单任务代码示例import socketif __name__ == '__main__': # 1. 创建服务端套接字 server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 解决关闭原创 2020-06-18 20:37:03 · 213 阅读 · 0 评论 -
python网络编程之TCP服务端开发
1. 开发步骤创建服务端套接字对象绑定IP和端口监听服务请求接受服务的请求并分配新的套接字接受消息发送消息关闭新的套接字关闭服务器端的套接字2. 开发工具2.1 导入 socket 模块 import socket2.2 创建服务端 socket 对象socket.socket(AddressFamily, Type)参数说明:AddressFamily 表示IP地址类型, 分为TPv4和IPv6Type 表示传输协议类型方法说明:bind((host, port原创 2020-06-18 11:49:11 · 158 阅读 · 0 评论 -
python网络编程之TCP客户端开发
1. 开发流程创建套接字和服务端套接字建立连接发送数据接受数据关闭连接2. 开发工具导入 socket 模块 import socket创建客户端 socket 对象 socket.socket(AddressFamily, Type)参数说明:AddressFamily 表示IP地址类型, 分为TPv4和IPv6Type 表示传输协议类型方法说明:connect((host, port)) 表示和服务端套接字建立连接,host是服务器ip地址,port是应用程序的端口号原创 2020-06-18 11:46:44 · 147 阅读 · 0 评论 -
python的线程编程
1. 定义CPU调度的基本单位一个进程包含多个线程,至少一个主线程,再由主线程创建多个子线程2. 多线程导入线程模块import threading创建线程线程对象名 = threading.Thread(target=线程名)Thread([group [, target [, name [, args [, kwargs]]]]])group: 线程组,目前只能使用Nonetarget: 执行的目标任务名args: 以元组的方式给执行任务传参kwargs: 以字典方式原创 2020-06-17 22:38:07 · 119 阅读 · 0 评论 -
python的进程编程
多任务执行定义:同一时间执行多个任务执行方式并发:单核交替时间执行并行:多核同一时间点执行多个任务进程定义:OS资源分配的基本单位,默认一个程序至少一个进程,一个进程包含多个线程1. 多个子进程1.1 导入进程包import multiprocessing1.2 Process进程类的说明Process([group [, target [, name [, args [, kwargs]]]]])group:指定进程组,目前只能使用Nonetarget:执行的目标任原创 2020-06-17 22:37:23 · 157 阅读 · 0 评论 -
python面向对象版学员管理系统
1. 系统需求对学员信息存储实现对学员信息的增、删、改、查、存储、显示及退出系统2. 程序文件准备2.1 分析对象学员管理系统工作注意事项一个对象一个文件,便于维护程序入口一般定为:main.py2.2 创建程序文件文件夹名称:StudentManagerSystem程序文件:入口:main.py学员:student.py管理系统:managerSystem.py3. 书写程序3.1 学员需求:初始化属性:姓名、性别、手机号通过__str原创 2020-06-14 18:13:35 · 370 阅读 · 0 评论 -
python模块及包自定义和导入
1. 导入模块1.1 导入模块的三种方式import 模块from 模块 import 功能名from 模块 import *代码解释import mathprint(math.sqrt(9))from math import sqrtfrom math import *print(sqrt(9))1.2 导入模块时设别名import 模块 as 别名from 模块 import 功能名 as 别名定义别名后原名称就不能使用了import ma原创 2020-06-13 12:50:49 · 189 阅读 · 0 评论 -
python异常捕获及异常传递和自定义异常
1. 了解异常定义 程序出现错误作用 通过异常处理,使得出现错误的程序能够继续的执行下去,而不是直接中断2. 异常写法2.1 语法try: 可能异常的语句except: 如果出现异常执行的语句代码解释打开一个文件,如果文件不存在,以 r 打开会报错,则以 w 模式打开try: f = open('haha.txt', 'r')except: f = open('haha.txt', 'w')2.2 捕获指定异常语法try: 可原创 2020-06-12 11:50:40 · 169 阅读 · 0 评论 -
python文件基本处理及os调用
1 基本操作打开、读写、关闭。。。# 打开文件 open()f = open('hello.txt','w')# 读取read(), 写入 write()f.write('aaa')# 关闭文件 close()f.close()2 文件打开模式open()语法 : 文件对象 = open(‘文件名’, ‘打开模式’)模式描述r以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。rb以二进制格式打开一个文件用于只读。文件指针将会放在文件的原创 2020-06-11 18:43:38 · 139 阅读 · 0 评论 -
python面向对象之多态及类方法属性和静态方法
1 多态定义:子类重写父类的方法,调用不同子类对象的父类方法时,产生不同的执行效果优点 灵活多变,更容易编写出通用的代码实现步骤定义父类定义子类,重写父类的方法调用不同子类的父类方法,实现不同效果代码# 定义父类class Dog(object): def work(self): print('工作')# 定义子类,不同子类继承父类重写方法class AmyDog(Dog): def work(self): print('原创 2020-06-10 22:39:13 · 174 阅读 · 0 评论 -
python面向对象之类和继承
1 类1.1 类基本语法# 1.定义类class Washer(): def wash(self): print('洗衣服。。。') print(self) # 2.创建对象haier = Washer()# 3.1 打印对象print(haier) # 输出对象地址# 3.2 使用方法haier.wash() # self输出 调用该函数的对象地址1.2 self 调用该函数的对象1.3 外部定义类属性并获取语法原创 2020-06-09 22:31:26 · 125 阅读 · 0 评论 -
python面向对象之实验一布置新房
2.2 步骤分析需求涉及两个事物:房子 和 家具,故被案例涉及两个类:房子类 和 家具类。2.2.1 定义类房子类实例属性房子地理位置房子占地面积房子剩余面积房子内家具列表实例方法容纳家具显示房屋信息家具类家具名称家具占地面积2.2.2 创建对象并调用相关方法2.3 代码实现2.3.1 定义类家具类class Furniture(): def __init__(self, name, area): # 家具名字原创 2020-06-09 12:02:57 · 430 阅读 · 0 评论 -
python面向对象实验一之烤地瓜
5.1 烤地瓜1.1 需求需求主线:被烤的时间和对应的地瓜状态:0-3分钟:生的3-5分钟:半生不熟5-8分钟:熟的超过8分钟:烤糊了添加的调料:用户可以按自己的意愿添加调料1.2 步骤分析需求涉及一个事物: 地瓜,故案例涉及一个类:地瓜类。1.2.1 定义类地瓜的属性被烤的时间地瓜的状态添加的调料地瓜的方法被烤用户根据意愿设定每次烤地瓜的时间判断地瓜被烤的总时间是在哪个区间,修改地瓜状态添加调料用户根据意愿设定添加的调料将用户原创 2020-06-08 22:26:25 · 1627 阅读 · 0 评论 -
python学习笔记之面向对象编程
OPPObject Oriented Programming定义类 class 并实例化class Student(object): # 通过 class 定义 def __init__(self,name,score): # 初始化 self 必填,其余为属性参数 self.name = name self.score = scorebart = Student('Bob',59) # 将类实例化(必须传入__init__函数的参数) 赋给原创 2020-06-07 10:45:29 · 117 阅读 · 0 评论 -
python学习笔记之模块
模块Module一个.py文件就是一个Module一个目录下面有__init__.py的目录就是一个包mycompany ├─ web │ ├─ __init__.py │ ├─ utils.py │ └─ www.py ├─ __init__.py ├─ abc.py └─ utils.py其中__init__.py模块就是指包名的模块mycompany.pymycompany.abc.py 模块为 mycompany.abc作用域__xxxx__特殊变量可以直接引原创 2020-06-06 16:45:43 · 90 阅读 · 0 评论 -
常用python函数总结--持续更新中
字符专项用途函数大小写upper() lower()寻字符string.find(str, beg=0, end=len(string))返回索引,否则-1根据字符分离出三元组 (从右向左)partition(str) ( rpartition(str) )替换replace(str1,str2)替换一批字符先使用trantab = str.maketrans('abcd','1234'),然后用str.translate(trantab)统计原创 2020-06-05 10:54:14 · 106 阅读 · 0 评论 -
python学习笔记之函数式编程
主要思想把运算过程写成函数嵌套调用的表达式例如数学表达式(1 + 2) * 3 - 4面向过程 a = 1 + 2; b = a * 3; c = b - 4;函数式result = subtract(multiply(add(1,2), 3), 4)add(1,2).multiply(3).subtract(4)merge([1,2],[3,4]).sort().search("2")简洁,开发快更接近自然语言,更易理解没有中间变量易于并发进程,多核处理原创 2020-06-05 10:52:42 · 126 阅读 · 0 评论 -
python学习笔记--高级特性
切片slice取列表/元祖前3个元素:列表取出为列表,元祖取出为元祖L[0:3] 表示从索引 0 到 3(第1个到第3个元素),但不包括 3的元素L[:] 表全部,可以省略,第一个省开头0,第二个省结尾len(L)+1L[2:3] 表示 L[2]L[10:20] 第 11 到 20 个数L[:1] 第一个数; L[1:] 除第一个数剩下所有L[-1:] == L[len(L) - 1 : len(L) + 1] 最后一个数;L[:-1] 除最后一个数所有的数L[-10:] 最后10个数L原创 2020-06-01 17:14:04 · 484 阅读 · 0 评论 -
python函数
定义def my_abs(x): if x > 0: return x else: return -xt = input()s = int(t)print(my_abs(s))异常错误处理def my_abs(x): if not isinstance(x, (int, float)): raise TypeError('bad operand type') if x >= 0: re原创 2020-05-30 17:16:10 · 145 阅读 · 0 评论 -
python基础学习笔记一
注释单行注释#多行注释通过 单引号'''或 双引号"""'''这是一个注释这是一个注释'''数据类型和变量浮点数科学计数法3.14x109 3.14e90.0000012 1.2e-6字符串' ' 或 " " 都可以注意>>> print(' I\'am \"ok\"! ') # 转义字符 I'am "ok"!>>> print(" I'am ok! ") # 嵌套使用 I'am ok! >>> pri原创 2020-05-28 18:50:59 · 166 阅读 · 0 评论