
python基础
零基础讲python,带你深入理解python
数据工匠大壮
致力于开源技术的探索
展开
-
python2.7模块学习记录 安装模块报错
pip安装模块报错原创 2023-06-29 22:53:36 · 206 阅读 · 0 评论 -
1、mysql基础
数据库的由来数据库的本质就是存储数据的,之前程序写入数据都是放到文件中,放在文件中的数据格式和类型各有各的定义方法,导致后续取数据比较困难,素以衍生了一种处理数据的软件,数据库软件是一种cs架构,客户端和服务端通信依赖于网络传输,客户端也可以是各种语言编写的,为了使server端能够处理客户端发来的数据,所以定义了统一的语言sql数据库的分类关系型数据库:一般是以表格的形式,数据之间有依赖关系,mysql、oracle、access、sqlite非关系型数据库:一般是以k\v键值对的形式,redis原创 2021-11-15 15:41:16 · 762 阅读 · 0 评论 -
31、套接字
基于tcp协议的套接字版本一:clientimport socketcontext=input("请输入要传输的内容:").strip()client=socket.socket(socket.AF_INET,socket.STREAM)client.connect("127.0.0.1",8080)client.send(context.encode("utf-8"))msg=client.recv(1024)print(msg.decode("utf-8"))client.clos原创 2021-11-06 11:50:36 · 92 阅读 · 0 评论 -
30、网络基础
现有网络通信架构CS架构:由客户端和服务端软件组成,应用层协议可以自己来定义BS架构:由浏览器当作客户端,以及服务端软件租组成,应用层协议需要遵循浏览器的应用层协议来定义网络的介绍网络通信依赖的物理介质+通信协议(相当于一个翻译官)互联网通信协议的原理互联网的通信基于OSI七层模型,从上至下分为,应用层、表示层、会话层、传输层、网络层、数据链路层、物理层(应表会传网输入)一般我们也将其当作OSI五层模型 每一层都有相应的协议,协议的共同特点是由数据报文的头部+数据部分组成,数据部分是上层原创 2021-10-19 16:40:51 · 530 阅读 · 0 评论 -
29、异常处理
什么是异常处理,及异常的种类 程序在运行过程中,经常会报出各种异常消息,导致后续的代码无法正常运行。 异常的种类:语法异常(SyntaxError)、逻辑异常常用的异常处理 trytry: x=[1,2] print(x[3]) print("123456")except IndexError as e: print("异常信息:",e)except (IndexError,SyntaxError) as e: print("异常信息:",e)els原创 2021-10-14 10:14:11 · 79 阅读 · 0 评论 -
28、类的反射、内置函数、元类
类的反射机制在程序运行过程中,获取对象属性的过程反射的应用场景原创 2021-10-14 09:31:21 · 86 阅读 · 0 评论 -
27、面向对象特性
类的常用伎俩隐藏数据属性和函数属性隐藏类内属性是为了类体外访问不到相应的属性,为了保证数据安全以及简化接口的信息。类体内是可以正常访问的,也就是__name是类定义阶段就转换了,这种转换只是单纯语法上的转换。隐藏对象的属性也是一样的情况class Student: __school="qinghua" #隐藏类中的数据属性 def __init__(self,name,age,gendar): self.__name=name原创 2021-09-29 17:35:12 · 82 阅读 · 0 评论 -
26、面向对象编程
面向对象概念:面向对象编程是一种编程思想,可以将对象理解为容器,该容器是对数据和功能的一种高度整合,很好实现了数据和功能之间的解耦。为啥说对象是对数据和功能的一种高度整合?1、模块化也是一种容器,通过将数据和功能封装到文件中,各个功能如果解耦会使得文件数非常多2、列表、字典也是一种容器,通过将数据和功能封装到列表和字典中,但是功能并不能写到列表和字典中,真正的功能函数还是要在列表和字典容器外实现,这个并没有实现数据和功能的高度整合...原创 2021-09-26 15:17:38 · 79 阅读 · 0 评论 -
25、re模块
正则re模块作用:正则表达式是用来匹配处理字符串的正则表达式的匹配规则匹配规则说明元字符表^单行匹配以某字符开头的字符串,多行匹配已某字符开头的行$单行匹配以某字符结尾的字符串,多行匹配以某字符结尾的行.匹配任意单个字符*匹配*号前字符出现0次或多次的字符串,相当于{0,}?匹配?号前字符出现0次或1次的字符串,相当于{0,1}+匹配+号前字符出现1次或多次的字符串,相当于{1,}[]匹配字符集中的任意一个字符,[^]原创 2021-09-09 16:35:12 · 110 阅读 · 0 评论 -
24、logging模块
日志模块使用原创 2021-09-07 15:01:48 · 65 阅读 · 0 评论 -
23、hashlib和加盐+subprocess模块
hash算法原创 2021-09-07 11:15:35 · 155 阅读 · 0 评论 -
22、序列化和反序列化
序列化和反序列化概念 序列化:将内存中的变量序列化后存储到硬盘或者通过网络传输到不通平台,类似于encoding过程。python中是将各种数据类型转换为字符串 反序列化:将硬盘中的数据反序列化成相应的数据类型并加载到内存中。将字符串转换为python中的数据类型序列化的作用1. 将内存中数据序列化后存储到硬盘2. 将内存中数据序列化后通过网络传输给不同平台(java)3. 往往一个应用需要不同的语言程序来协作完成,因为不同语言的数据类型不同,需要一个中间数据类型来进行不同平台之间的传输(原创 2021-09-06 14:54:11 · 121 阅读 · 0 评论 -
21、常用模块的用法
time 模块生成 timestamp(时间戳)import timeprint(time.time()) #打印时间戳print(time.localtime()) #打印结构化时间print(time.mktime(time.localtime())) #将结构化时间转换为时间戳生成 struct_time(元组或者结构化的时间)import timeprint(time.localtime()) #打印结构化时间print(time.gmtime()) #打印格林威治结构化时原创 2021-08-27 14:22:43 · 87 阅读 · 0 评论 -
19、模块
模块 定义:模块是一系列功能得集合, 分类:内置模块(由c语言编写)、第三方模块、自定义模块(由python语言编写)原创 2021-08-25 10:34:52 · 102 阅读 · 0 评论 -
18、面向过程得编程思想以及匿名函数
面向过程编程定义:过程即顺序,按照一定得顺序进行编程。面向过程编程是一切编程得基础。即使是面向对象编程中也有小部分得面向过程编程组成函数式编程匿名函数 lambdamaxminmapfilterreduce...原创 2021-08-17 16:30:33 · 80 阅读 · 0 评论 -
17、函数递归和算法
函数递归 函数递归的两个过程:递推、回溯 python中得函数随着每次递归得增加,会占用相应得内存空间;python中默认得递归次数限制为1000#将列表中的元素保存到一个列表中l=[1,[2,[3,[4,[5,[6,7,8]]]]]]new_l=[]def func1(l): for i in l: if type(i) is list: func1(i) else: new_l.append(i)原创 2021-08-13 19:17:10 · 94 阅读 · 0 评论 -
16、迭代器
迭代器迭代定义:迭代不等于循环,迭代是基于上次执行的结果来进行下一次的循环。迭代器的作用:可以不依赖于索引进行取值可迭代对象:有__iter__()内置方法的数据类型都是可迭代对象。可迭代对象可通过__iter__()转换为迭代对象迭代对象:同时包含__iter__()和__next__()内置方法的类型是迭代对象。迭代对象通过__iter__()转换仍然为起本身字符串、列表、字典、元组、集合、文件等都是可迭代对象,但是集合和字典无法通过索引取值L1="jiafjaf"L2=["fjiafj原创 2021-08-13 14:10:29 · 81 阅读 · 0 评论 -
15、装饰器
装饰器储备知识名称空间和作用域*args**kwargs作为形参和实参的作用函数对象函数嵌套装饰器定义:给代码添加额外功能的函数作用:在不改变代码调用方式和代码内容的前提下,对代码增加额外的功能修改代码的原则:开放封闭原则。案例:阶段一:增加代码执行时间的功能(直接修改了定义阶段函数体代码)不符合开放封闭原则import timedef func1(x): start=time.time() print("my name is %s,welcome to m原创 2021-08-05 18:04:01 · 86 阅读 · 0 评论 -
14、闭包函数
函数对象定义:可以把函数当作变量用,是将函数对应的内存地址赋值给相应的变量原创 2021-08-02 16:14:14 · 81 阅读 · 0 评论 -
13、名称空间和作用域
名称空间名称空间是人为的将栈区划分的几个逻辑空间,可分为内置名称空间、全局名称空间、局部名称空间内置名称空间内置名称空间定义范围:解释器内定义的名称作用周期:解释器读入到内存后内置变量会加载到内存;退出解释器则释放其内置名称空间print(input)全局名称空间全局名称空间定义范围:代码中顶级定义的变量,或者除了函数、类中定义的变量,都是在全局名称空间作用周期:在python解释器开始识别代码语法时产生到代码执行完结束a=3print(a)局部名称空间局部名称空间定义范围原创 2021-07-28 12:55:38 · 111 阅读 · 0 评论 -
12、函数及其参数
函数原则:先定义,后调用。精髓:定义的过程只检查函数内代码的语法,并不会执行代码。调用函数才会执行代码。所以如果函数代码语法没错,定义阶段是不会报错的作用:增加代码的逻辑性,减少代码的冗余,增强代码的可扩展性定义函数的模板def func(参数1...): #参数可有可无,根据需求来订 """函数作用说明""" pass #函数体代码 return res #函数返回值,可以不写函数的三种定义方式- 无参函数def func1(): name=input("请输入您原创 2021-07-23 12:48:51 · 75 阅读 · 0 评论 -
11、常用文件处理函数及指针的移动
常用文件处理函数1. with open(r'a.txt',mode='rb') as f: res=f.read() #一次性读取整个文件内容到内存 print(res,type(res)) 2. with open(r'a.txt',mode='rb') as f: res=f.readline() #一次读取一行到内存中 print(res,type(res))3. with open(r'a.txt',mode='rb原创 2021-07-23 09:58:39 · 154 阅读 · 0 评论 -
10、文件处理
文件处理文件相关概念文件:文件是操作系统给予用户操作硬盘而诞生的逻辑概念客户操作硬盘是通过发起系统调用,然后由操作系统进一步对硬盘读写操作python操作文件一般调用的是open()方法1. open()方法操作文件内容的模式有: t(不指定默认) ------>用于str类型的数据 b(bytes类型二进制)----->用于非str类型的数据2. open()方法操作文件内容的方法有:r、w、a、+open()操作文件的流程#!/usr/bin/python原创 2021-07-16 15:04:25 · 188 阅读 · 0 评论 -
9、字符编码
字符编码字符编码的渊源1. 起初计算机只支持ASCII码的字符转换2. 后来计算机兴起,为满足不同国家的需求,出现了GBK、shift-jis等字符编码表3. 为了统一,后来出现了unicode编码格式,目前内存中使用的编码表就是unicode 构成计算机的三大硬件:cpu、内存、硬盘 计算机读取文件的过程: - 计算机把文件从硬盘加载到内存, - 应用程序从内存中读取相应的数据 计算机存储文件的过程: - 应用程序将内容写到内存 - 计算机将内存中的数据写入到硬盘原创 2021-07-14 14:50:52 · 99 阅读 · 0 评论 -
8、range常见用法和基本数据类型的内置方法
range的使用range(10) #顾头不顾尾,打印出0-9range(2,8) #原创 2021-07-11 12:50:25 · 1055 阅读 · 0 评论 -
7、流程控制
流程控制之if判断if语法格式if 条件1: 语句1elif 条件2: 语句2elif 条件3: 语句3else: 语句4 if 条件判断,代码块前一般加4个空格,程序自上到下执行,只要匹配其中一个条件,代码就不会再往下执行。流程控制之while\for循环while 语法格式while 条件: 语句while循环只要是条件为真,则执行其子代码块,否则循环执行结束。while 的条件可以为tag,提前为tag赋值,如果是想要退出循环,可以在内部判断后重新对tag进行赋值原创 2021-07-07 17:27:22 · 77 阅读 · 0 评论 -
6、可变与不可变类型和深浅拷贝
可变和不可变类型可变数据类型: 堆区的值改变了,但是值对应的id不变,容器类型的数据都是可变类型的,如:list、dict不可变类型: 堆区的值改变了,值对应的id也发生了改变,如:int、floating、str、boola = {"name":"lzz","age":24,"lover":"everyone"}print(id(a))a["name"]="leo"print(a,id(a))注意: 字典的key必须为不可变类型,否则报错,value可以是任意类型条件判断.原创 2021-07-07 10:45:21 · 144 阅读 · 0 评论 -
5、格式化输入输出和基本运算符
格式化输入输出格式化输入不同的python版本,input函数表达略有差异python3无论你输入的是什么内容,都是当作字符串类型来处理python2会根据你输入的数据类型来定义其类型(python2中的raw_input和python3中的input含义一样)#!/usr/bin/python3name=input(">>>>,")print(id(name),type(name))格式化输出%、str.format、f三种格式化输出,各有各的好处,适用的版本原创 2021-07-02 16:15:11 · 103 阅读 · 0 评论 -
4、小整数池和垃圾回收机制
小整数池[-5,256]python解释器为节省内存空间而内置的一个特性,pycharm也会有,可能定义的范围更大,所以比较吃内存,因为在python解释器和pycharm启动时就会事先加载这些小整数池到内存中。垃圾回收机制作用: 为了防止内存溢出,需要定期清理内存中无用的数据引用计数引用可以分为两种类型:- 直接引用:变量直接被赋值的方式- 间接引用:变量通过容器的数据类型被引用的方式标记清除分代回收...原创 2021-06-30 23:32:17 · 157 阅读 · 1 评论 -
3、变量及数据类型
变量变量: 是变化的量,记录了事物的某一时刻的某种状态。变量的三大组成部分name:变量名的定义遵循以下条件(变量名需要见名知意,一般会使用_方式命名):- 变量名由字母、数字、下划线组成- 变量名不能以数字开头- 变量名不能是解释器中的关键字value:变量值的不同类型是为了记录不同种类的事物,涉及到以下类型- int- floating- str- list- dict- bool等号=等号的作用是将值对应的内存地址赋值给相应的变量名。***注意:***变量的定义原创 2021-06-30 13:42:56 · 192 阅读 · 0 评论 -
2、初步接触python解释器和idea
python解释器python能够跨平台,得益于python解释器;可根据不同的操作系统来下载对应的python解释器python2和python3语法结构上有较大差异,所以python3更新的同时python2也是在更新的注意事项: 解释器安装后需要设置相应的环境变量,python解释器允许多版本共存。pycharm创建项目时注意事项pycharm的安装很简单,这里就不再赘述为了项目之间不影响,需要在创建项目的时候创建venv环境,相当于复制了一份解释器运行python代码的两种方式交互式原创 2021-06-28 16:19:07 · 381 阅读 · 0 评论 -
1、编程计算机基础
编程的概念编程是程序员通过编写程序来让计算机帮自己完成某件事情的过程。程序代码的生产者是程序员程序代码的作用对象是操作系统计算机基础计算机的三大组成部分cpu: 相当于人类的大脑,包含运算单元和控制单元。处理和传输速度最快。cpu目前有两大类型intel和 amd,区别在于多核cpu在缓存中数据同步的问题。cpu的X86_64代表,X86代表cpu的型号,64代表cpu每次能从内存中读取64bytes的数据内存: 一般是基于电工作的,断电数据就丢失。数据传输速度远次于cpu.ram是我们原创 2021-06-26 20:12:54 · 183 阅读 · 0 评论