Python
文章平均质量分 79
学无止境
学迁
这个作者很懒,什么都没留下…
展开
-
Python学习_基础_34_异常处理
Python学习-异常处理一、基本概念什么是异常?异常是程序发生错误的信号,程序一旦出错就会抛出异常,程序的运行随即终止。异常的三大组成部分异常的追踪信息异常的类型异常的内容为何处理异常?本来程序一旦出现异常就整体结束掉了,有了异常处理以后,在遇到错误时就会有相应的处理机制不会任由程序崩溃掉。而且我们要捕捉异常并处理,将出错信息记录到日志内。二、如何处理异常语法上的错误:SyntaxError有错改错,不再赘述。逻辑上的错误常见逻辑错误如下:# TypeError:数字类原创 2021-09-07 21:16:22 · 178 阅读 · 0 评论 -
Python学习_基础_33_面向对象编程进阶(元类)
Python-面向对象编程进阶-元类一、基本概念什么是元类?对象 → 通过调用类实例化产生类 → 通过调用元类实例化产生元类 :就是用来实例化产生类的类。我们使用class关键字来定义一个类,背后发生的事情实质就是调用了元类。class test: passprint(type(test)) # <class 'type'>如上所示,type就是元类,我们用class关键字定义的所有的类以及内置的类都是由元类type实例化产生的。至于type的妈原创 2021-09-07 21:13:16 · 141 阅读 · 0 评论 -
Python学习_基础_32_面向对象编程进阶(反射、内置方法)
Python-面向对象编程进阶一、面向对象编程之反射python是动态语言,而反射机制被视为动态语言的关键。(一)基本概念反射机制:反射是一种“能力”,指的是在程序的运行状态中,对于任意一个类,都可以知道这个类的所有属性和方法;对于任意一个对象,都能够调用他的任意方法和属性。即在程序运行过程中,可以"动态"获取对象的信息,调用属性或方法。那么反射有什么作用呢?当我们想要查看对象拥有的属性时,使用的是__dict__方法,不过对象使用这个方法取不到类的属性,只能取到对象专属于自己的属性。而通原创 2021-09-05 20:40:34 · 139 阅读 · 0 评论 -
Python学习_基础_31_常用的内置函数
Python-常用的内置函数一、较简单的内置函数abs():求绝对值print(abs(-1)) # 1all():在一个可迭代对象中,逐个取出来所有值,如果所有取出来的值(x)的布尔运算结果(bool(x))都为True,则返回Trueprint(all([1, 'aaa', '1'])) # Trueprint(all([1, 'aaa', ''])) # False 列表的最后一个元素是空字符串print(all([1, 'aaa', ' '])) # True 列表原创 2021-09-04 22:32:51 · 86 阅读 · 0 评论 -
Python学习_基础_30_绑定方法与非绑定方法、函数的类型提示(补充)
Python-绑定方法与非绑定方法一、绑定方法绑定方法的特殊之处在于将调用者本身当做第一个参数自动传入(一)绑定给对象的方法:调用者是对象,自动传入的是对象在类中正常定义的函数默认是绑定到对象的,我们举一个输出ip地址的例子:class interweb: def __init__(self, ip, port): self.ip = ip self.port = port def ipaddress(self): print(原创 2021-09-04 19:15:06 · 118 阅读 · 0 评论 -
Python学习_基础_29_面向对象编程之多态、鸭子类型
Python-面向对象编程之多态一、基本概念什么是多态?多态:同一事物有多种形态比如动物有多种形态:猫、狗、猪class Animal: # 同一类事物:动物 def talk(self): print('动物电码,滴滴哒哒')class Cat(Animal): # 动物的形态之一:猫 def talk(self): print('喵喵喵')class Dog(Animal): # 动物的形态之二:狗 def talk原创 2021-09-03 18:37:55 · 244 阅读 · 0 评论 -
Python学习_基础_28_面向对象编程之继承
Python-面向对象编程之继承一、基本概念什么是继承继承是一种创建新类的方式,新建的类可称为子类或派生类,被继承的类称为父类,父类又可称为基类或超类,子类会遗传父类的属性。需要注意的是:python支持多继承,在Python中,新建的类可以继承一个或多个父类。继承的形式:class ParentClass1: # 定义父类1 passclass ParentClass2: # 定义父类2 passclass SubClass1(ParentClass1): #原创 2021-09-03 16:05:49 · 404 阅读 · 0 评论 -
Python学习_基础_27_面向对象编程之封装(隐藏属性、property装饰器)
Python-面对对象编程之封装一、封装介绍面向对象编程有三大特性:封装、继承、多态。封装是面向对象三大特性最核心的一个特性,封装的意思其实就是“整合”。二、将封装的属性进行隐藏操作(一)如何隐藏:在属性名前加_ _前缀,就会实现一个对外隐藏属性效果class Foo: __x = 1 def __f1(self): print('from test')print(Foo.__x) # 报错print(Foo.__f1) # 报错该隐藏需要注意的原创 2021-08-30 20:54:02 · 215 阅读 · 0 评论 -
Python学习_基础_26_面向对象编程基础(类与对象)
Python-面对对象编程基础一、概念引入我们之前学习过“面向过程编程”的概念,面向过程的核心是“过程”二字,过程的终极奥义就是将程序流程化;过程是“流水线”,用来分步骤解决问题的。相对应的,“面向对象”的核心是“对象”二字,我们说 “对象”就好像是一个容器,用来盛放数据与功能。类也是“容器”,该容器用来存放同类对象共有的数据与功能。举个例子:我们要写一个简单的餐厅人员信息程序,要求具有厨师和服务员两类人的数据和个人简介功能(函数)。# 厨师数据:name、grade、sexcook_na原创 2021-08-28 17:11:52 · 355 阅读 · 0 评论 -
Python学习_基础_25_正则表达式
Python-常用模块之re模块(正则表达式)一、基本概念什么是正则?正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串组成规则的方法。正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。简单地说,正则表达式就是一门专门用于处理字符串的增强语法。本质上是嵌入在Python中的一种微小的、高度专业化的编程语言,可通过re模块获得。为什么要用正则?给定一原创 2021-08-26 20:40:56 · 398 阅读 · 0 评论 -
Python学习_基础_24_常用模块之logging模块(日志模块)
Python-常用模块之logging(日志)模块一、基本概念什么是日志?日志是对软件执行时所发生事件的一种追踪方式。软件开发人员对他们的代码添加日志调用,借此来指示某事件的发生。一个事件通过一些包含变量数据的描述信息来描述(比如:每个事件发生时的数据都是不同的)。开发者还会区分事件的重要性,重要性也被称为等级或严重性。日志(logging)模块提供了一系列的函数(debug、info、warning、critical)来适应不同的应用场景。名称描述DEBUG细节信息,在我们原创 2021-08-25 20:28:54 · 689 阅读 · 0 评论 -
Python学习_基础_23_常用模块之hashlib模块
Python-常用模块一、hashlib模块①__什么是hash(哈希)?hash是一类算法,该算法接收传入的内容,经过运算得到一串hash值。hash值的特点:只要传入的内容一样,得到的hash值必然一样不能由hash值返解出传入的内容不管传入的内容有多大,只要使用的hash算法不变,得到的hash值长度是固定的②哈希的用途用途一:利用特点2实现密码的密文传输与验证用途二:利用特点1、3实现文件完整性校验③如何用哈希(import hashlib)hash算法就像一座原创 2021-08-25 15:30:26 · 549 阅读 · 0 评论 -
Python学习_基础_22_常用模块之json模块、pickle模块、configparser模块
Python-常用模块一、json与pickle模块json模块与pickle模块是用来给对象进行序列化的。①__什么是序列化?序列化指的是把内存里的数据类型转换成一种特定格式的内容,该格式的内容可以用于存储或传输给其他平台使用。与之对应的是反序列化,顾名思义,就是把这种特定格式的内容反向转换成原来的数据类型。内存中的数据类型 ----> 序列化 ----> 特定的格式(json格式或者pickle格式)内存中的数据类型 <---- 反序列化 <---- 特定的格原创 2021-08-24 16:38:15 · 250 阅读 · 0 评论 -
Python学习_基础_21_常用模块之时间模块、random模块、os模块、sys模块
Python-常用模块一、时间模块time模块与datetime模块的基本操作time模块(import time)时间分为三种格式:时间戳:从1970年到现在经过的秒数,用于时间间隔的计算print(time.time()) # 1629612171.127616按照某种格式显示的时间,用于展示时间print(time.strftime('%Y-%m-%d %H:%M:%S %p')) # 2021-08-22 14:02:01 PMprint(time.strftim原创 2021-08-23 15:03:39 · 143 阅读 · 0 评论 -
Python学习_基础_20_包、_ _init_ _文件
Python-包、_ _init_ _.py文件一、包的定义什么是包?随着模块数目的增多,把所有模块不加区分地放到一起是极不合理的,于是Python为我们提供了一种把模块组织到一起的方法,即创建一个包。包就是一个包含有**_ _ init_ _.py文件**(文件内容为空)的文件夹,文件夹内可以组织子模块或子包。例如:Mypackage # 顶级包├── __init__.py ├── Sonpackage # 子包│ ├── __原创 2021-08-21 13:41:49 · 1511 阅读 · 0 评论 -
Python学习_基础_19_探索模块
Python-模块一、基本概念什么是模块?模块就是一系列功能的集合体,分为三大类:内置的模块第三方的模块自定义的模块模块有四种形式:使用python编写的.py文件(一个python文件本身就一个模块,文件名为m.py,模块名就叫m)已被编译为共享库或DLL的C或C++扩展把一系列模块组织到一起的文件夹(注:文件夹下有一个_ _init_ _.py文件,该文件夹称之为包)使用C编写并链接到python解释器的内置模块为何要用模块?内置与第三方的模块拿来就能用,无需定义。这原创 2021-08-20 13:40:27 · 312 阅读 · 0 评论 -
Python学习_基础_18_面向过程编程思想与函数式编程思想(匿名函数lamdab、map、filter)
一、面向过程的编程思想面向过程的编程思想,核心是“过程”二字,过程即流程,指的是做事的步骤,即先干什么、再干什么、后干什么。基于面向过程开发程序就好比在设计一条流水线,是一种机械式的思维方式。这正好契合计算机的运行原理:任何程序的执行最终都需要转换成CPU的指令,按过程调度执行。即无论采用什么语言、无论依据何种编程范式设计出的程序,最终的执行都是过程式的。编程范式指的就是编程的套路,打个比方,如果把编程的过程比喻为练习武功,那编程范式指的就是武林中的各种流派,而在编程的世界里常见的流派有:面向过程、原创 2021-08-18 20:55:21 · 255 阅读 · 0 评论 -
Python学习_基础_17_函数递归
Python-函数递归一、递归的定义函数的递归调用:是函数嵌套调用的一种特殊形式,具体是指在调用一个函数的过程中又直接或者间接地调用到函数本身。直接调用本身:def f1(): print('是我是我还是我') f1()f1()间接调用本身:def f1(): print('===>f1') f2()def f2(): print('===>f2') f1()f1()像上面两种情况,会无限循环调用下去,导致死循环原创 2021-08-18 16:23:28 · 189 阅读 · 0 评论 -
Python学习_基础_16_叠加多个装饰器的加载与运行分析、三元表达式、列表/字典/集合生成式、生成器表达式
一、叠加多个装饰器的加载、运行分析加载顺序自下而上(自内向外)def deco1(func1): def wrapper1(*args, **kwargs): print('正在运行===>deco1.wrapper1') res1 = func1(*args, **kwargs) return res1 return wrapper1def deco2(func2): def wrapper2(*args, **kw原创 2021-08-17 18:23:12 · 143 阅读 · 0 评论 -
Python学习_基础_15_迭代器与生成器(yield 关键字)
Python-迭代器与生成器一、迭代器的基本概念什么是迭代器迭代器指的是迭代取值的工具,迭代是一个重复的过程,每次重复都是基于上一次的结果而继续的,单纯的重复并不是迭代。为何要有迭代器迭代器是用来迭代取值的工具,而涉及到把多个值循环取出来的类型有:列表、字符串、元组、字典、集合、打开的文件l = ['Python', 'JavaScript', 'Golang']i = 0while i < len(l): print(l[i]) i += 1上述迭代取值的原创 2021-08-17 16:18:47 · 628 阅读 · 0 评论 -
Python学习_基础_14_装饰器
Python-装饰器一、必备前置知识点*args, **kwargsdef index(x, y): print(x, y)def wrapper(*args, **kwargs): index(*args, **kwargs)wrapper(y=222, x=111) # index(y=222,x=111)# 运行结果:# 111 222给wrapper函数传递的参数实际上是给index函数传,遵循的是index函数的参数传递规则。名称空间与作用域原创 2021-08-16 18:11:47 · 460 阅读 · 0 评论 -
Python学习_基础_13_函数对象与闭包函数
Python-函数对象与闭包函数一、函数对象精髓:可以把函数当成变量去用# func = 内存地址def func(): print('from func')可以赋值,其实传的是内存地址def func(): print('from func')f = funcprint(f, func)# <function func at 0x0000016130DF6160> <function func at 0x0000016130DF6160>原创 2021-08-12 19:34:32 · 155 阅读 · 0 评论 -
Python学习_基础_12_名称空间与作用域
Python-名称空间与作用域一、名称空间(namespaces)名称空间namespacs:字面意思看,是存放名字的地方。我们知道,变量名是存放在栈区的,而值是存放在堆区的。准确的说,栈区存放的是变量名与其对应的值的内存地址的映射/绑定关系。(如下图所示)所谓名称空间,就是对栈区的划分,可以理解为对栈区里这么多映射/绑定关系划了划片,归了归类。有了名称空间之后,就可以在栈区中存放相同的名字了,在程序执行期间最多会存在三种名称空间。内置名称空间(只有一个)伴随python解释器的启动/原创 2021-08-04 19:58:42 · 166 阅读 · 0 评论 -
Python学习_基础_11_函数的参数
Python-函数的参数一、形参与实参介绍形参:在定义函数阶段定义的参数称之为形式参数,简称形参,相当于变量名。def func(x, y):实参:在调用函数阶段传入的值称之为实际参数,简称实参,相当于变量值。func(1,2)形参与实参的关系:在调用阶段,实参(变量值)会绑定给形参(变量名)。这种绑定关系只能在函数体内使用。实参与形参的绑定关系在函数调用时生效,函数调用结束后解除绑定关系。实参是传入的值,但值可以是以下形式:形式一func(1,2)形式二a=1原创 2021-08-04 14:41:51 · 255 阅读 · 0 评论 -
Python学习_基础_10_函数的定义、调用、返回值
Python-函数初识(定义、调用、返回值)一、概念引入什么是函数?函数就相当于具备某一功能的工具,函数的使用必须遵循一个原则:先定义,后使用。为什么要用函数?随着程序功能的增多,代码量随之增大,此时仍不加区分地把所有功能的实现代码放到一起,将会使得程序的组织结构不清晰,可读性变差,且程序中需要频繁使用同一功能时,只能重复编写该功能的实现代码,日积月累,程序将变得冗长,并且当某一功能需要修改时,又不得不找出所有定义及使用这段功能的地方修改之,管理维护的难度极大。所以我们需要使用函数来解决原创 2021-08-02 12:47:32 · 390 阅读 · 0 评论 -
Python学习_基础_09_文件处理
Python-文件处理零、基本概念什么是文件文件是操作系统提供给用户或应用程序操作硬盘的一种虚拟的接口。为什么要用文件用户/应用程序直接操作的是文件,对文件进行的所有操作,都是在向操作系统发送系统调用,然后再由操作系统将其转换成具体的硬盘操作。用户/应用程序可以通过文件将数据永久保存到硬盘中,或者从硬盘中读取数据,即操作文件就是操作硬盘。如何使用文件:open()f = open(),获得文件对象(文件句柄)open()的参数最基本要有文件路径和操作模式。一、模式介绍原创 2021-08-01 16:25:08 · 469 阅读 · 0 评论 -
Python学习_基础_08_字符编码初识
Python-字符编码字符编码涉及大量理论知识,此文只做初步学习之整理,针对实际应用可直接看第三部分简单总结。字符串类型、文本文件的内容都是由字符组成的,但凡涉及到字符的存取,都需要考虑字符编码的问题。一、理论基础什么是字符编码?人类在与计算机进行交互时,用的都是人类能读懂的字符,如中文字符、英文字符、数字字符等,而计算机只能识别二进制数。毫无疑问,由人类的字符到计算机中的数字,必须经历一个==“ 字符 → 翻译 → 数字 ”的过程。而翻译的过程必须参照一个特定的标准,该标准称之为字符编码原创 2021-07-27 18:37:03 · 123 阅读 · 0 评论 -
Python学习_基础_07_基本数据类型及其常用内置方法
Python-基本数据类型的常用内置方法一、数字类型int类型定义:age = 20 # 本质为 age = int(20)# 注意:名字+括号的意思就是调用某个功能,比如# print(...)调用打印功能# int(...)调用创建整型数据的功能# float(...)调用创建浮点型数据的功能类型转换: (1)纯数字的字符串转成int# 纯数字的字符串转成intres = int('100111')print(res, type(res)) # 100111 &l原创 2021-07-24 22:07:25 · 210 阅读 · 2 评论 -
Python学习_基础_06_while循环与for循环
Python-while循环与for循环一、循环之while循环循环的语法与基本使用while 条件: 代码1 代码2 代码3while的运行步骤:**步骤1:**如果条件为真,那么依次执行:代码1、代码2、代码3、…**步骤2:**执行完毕后再次判断条件,如果条件为True则再次执行:代码1、代码2、代码3、…,如果条件为False,则循环终止。count=0while count < 5: print(count) # 0,1,2,3,原创 2021-07-20 15:11:49 · 197 阅读 · 0 评论 -
Python学习_基础_05_if条件判断、列表的深浅copy
Python-if条件判断、列表的深浅copy一、条件第一大类:显式布尔值1.条件可以是:比较运算符age = 18print(age > 16) # 条件判断之后会得到一个布尔值2.条件可以是:True、Falseis_beautiful=Trueprint(is_beautiful)第二大类:隐式布尔值,所有的值都可以当成条件去用其中0、None、空(空字符串、空列表、空字典)==》代表的布尔值为False,其余都为True。二、if判断用缩进来表示代码层级,在if语原创 2021-07-18 15:02:19 · 226 阅读 · 0 评论 -
Python学习_基础_04_基本运算符、可变与不可变类型
Python-基本运算符、可变与不可变类型一、基本运算符算数运算符print(10 + 3.1) # 13.1print(10 + 3) # 13print(10 / 3) # 结果带小数 3.3333333333333335print(10 // 3) # 只保留整数部分 3print(10 % 3) # 取模、取余数 1print(10 ** 3) # 次方 10的3次方 1000赋值运算符=:变量的赋值age = 18增量赋值age = 18# age原创 2021-07-13 21:11:28 · 128 阅读 · 0 评论 -
Python学习_基础_03_垃圾回收机制略解、交互语句
Python-垃圾回收机制略解、交互语句一、垃圾回收机制略解垃圾回收机制-参考文章垃圾回收机制(简称GC)是Python解释器自带的一种机制,专门用来回收不可用(引用次数为0)的变量值所占用的内存空间。Python的GC模块主要运用了“引用计数”来跟踪和回收垃圾。在引用计数的基础上,还可以通过“标记-清除”解决容器对象可能产生的循环引用的问题,并且通过“分代回收”以空间换取时间的方式来进一步提高垃圾回收的效率。引用计数#举例讲解概念x = 10 # 直接引用# y = x # 直接原创 2021-07-12 15:46:43 · 104 阅读 · 0 评论 -
Python学习_基础_02_基本数据类型
Python-基本数据类型一、数字类型1.整型int作用:记录年龄、身份证号、个数等等整数数据。定义:age = 18print(type(age)) # int2.浮点型float作用:记录视力、身高、体重等有小数的数据。定义:height = 1.75print(type(height)) # float二、字符串类型作用:记录描述性质的状态,如名字、一段话。定义:用引号(’’,"",’’’ ‘’’,""" “”",)包含的一串字符info = '''当时明月在,曾原创 2021-07-08 14:15:32 · 333 阅读 · 0 评论 -
Python学习_基础_01_变量
Python-变量一、什么是变量?变量就是可以变化的量,量指的是事物的状态,比如人的年龄,游戏角色的等级、金钱等等。二、为什么要有变量?为了让计算机能够像人一样去记忆事物的某种状态,并且状态是可以发生变化的。程序执行的本质就是一系列状态的变化,变是程序执行的直接体现。三、如何用变量1.变量基本使用原则:先定义,后引用。name = 'JL' # 定义,往内存存print(name) # 引用,从内存取age = 19print(age)2.内存管理:垃圾回收机制垃圾:当一原创 2021-07-07 18:26:57 · 231 阅读 · 0 评论