
Python基础
文章平均质量分 83
Python基础
-wellplayed-
这个作者很懒,什么都没留下…
展开
-
利用settings文件实现功能的增减
1 利用了面向对象以及面向对象的多态性(鸭子类型),2 再通过定制配置文件并存放不同功能类的字符串路径,3 接着使用导入包就是导入__init__.py文件的特性, 在包中定义一个方法,4 方法中用importlib就轻松的导入了需要的模块.5 再拿到这个模板通过获取的字符串路径最后一个类的字符串进行反射就实现了可以同时进行多个类中功能的集合.原创 2024-01-06 19:49:59 · 552 阅读 · 0 评论 -
元类与异常处理
一个类没有声明自己的元类,默认他的元类就是type,除了使用内置元类type,我们也可以通过继承type来自定义元类,然后使用metaclass关键字参数为一个类指定元类class Mymeta(type): #只有继承了type类才能称之为一个元类,否则就是一个普通的自定义类pass。原创 2023-10-11 15:00:52 · 59 阅读 · 0 评论 -
组合、反射与内置方法
在一个类中以另外一个类的对象作为数据属性,称为类的组合。组合与继承都是用来解决代码的重用性问题。不同的是:继承是一种“是”的关系,比如老师是人、学生是人,当类之间有很多相同的之处,应该使用继承;而组合则是一种“有”的关系,比如老师有生日,老师有多门课程,当类之间有显著不同,并且较小的类是较大的类所需要的组件时,应该使用组合,如下示例此时对象teacher1集对象独有的属性、Teacher类中的内容、Course类中的内容于一身(都可以访问到),是一个高度整合的产物。原创 2023-10-10 14:54:06 · 70 阅读 · 0 评论 -
继承与多态
继承是一种创建新类的方式,在Python中,新建的类可以继承一个或多个父类,新建的类可称为子类或派生类,父类又可称为基类或超类通过类的内置属性__bases__可以查看类继承的所有父类在Python2中有经典类与新式类之分,没有显式地继承object类的类,以及该类的子类,都是经典类,显式地继承object的类,以及该类的子类,都是新式类。而在Python3中,即使没有显式地继承object,也会默认继承该类,如下。原创 2023-10-09 14:54:49 · 121 阅读 · 0 评论 -
绑定方法与非绑定方法
在程序设计中,封装(Encapsulation)是对具体对象的一种抽象,即将某些部分隐藏起来,在程序外部看不到,其含义是其他程序无法调用。要了解封装,离不开“私有化”,就是将类或者是函数中的某些属性限制在某个区域之内,外部无法调用。原创 2023-10-08 14:45:06 · 72 阅读 · 0 评论 -
面向对象编程
对象:是特征与技能的结合体类:一系列相似的特征和相似的技能的结合体问题来了:到底是先有对象还是先有类?1. 生活中先有人,在有人类,那就是先有对象,在有类2. 程序中:"""一定是先有类,然后调用类,产生对象!!!!!!!""""""专业语法:类的定义pass"""## 函数中的括号一定不能省略# pass# pass# pass"""1. 关键字使用class来声明。原创 2023-10-07 14:55:33 · 69 阅读 · 0 评论 -
logging模块
日志就是在你编码的过程中记录一些代码的变化比如:记录用户什么时间登录的 用户什么时间注册的等日志的存在形式:文件类型的 MySQL中 elasticsearch搜索引擎(数据库)目的: 后续可以查看错误原因、对账等。原创 2023-09-25 14:45:26 · 112 阅读 · 0 评论 -
常用内置模块(3)
任何允许用户登录的网站都会存储用户登录的用户名和口令。如何存储用户名和口令呢?如果以明文保存用户口令,如果数据库泄露,所有用户的口令就落入黑客的手里。此外,网站运维人员是可以访问数据库的,也就是能获取到所有用户的口令。这样,无需破解,只需要对比数据库的MD5,黑客就获得了使用常用口令的用户账号。对于用户来讲,当然不要使用过于简单的口令。但是,我们能否在程序设计上对简单口令加强保护呢?经过Salt处理的MD5口令,只要Salt不被黑客知道,即使用户输入简单口令,也很难通过MD5反推明文口令。原创 2023-09-22 15:01:22 · 101 阅读 · 0 评论 -
常用内置模块(2)
sys模块是与python解释器交互的一个接口。os模块是与操作系统交互的一个接口。原创 2023-09-21 14:44:29 · 124 阅读 · 0 评论 -
常用内置模块
如果你退出python解释器然后重新进入,那么你之前定义的函数或者变量都将丢失,因此我们通常将程序写到文件中以便永久保存下来,需要时就通过python test.py方式去执行,此时test.py被称为脚本script。随着程序的发展,功能越来越多,为了方便管理,我们通常将程序分成一个个的文件,这样做程序的结构更清晰,方便管理。这时我们不仅仅可以把这些文件当做脚本去执行,还可以把他们当做模块来导入到其他的模块中,实现了功能的重复利用。原创 2023-09-20 18:50:46 · 115 阅读 · 0 评论 -
正则表达式
在python中,无论是正则表达式,还是待匹配的内容,都是以字符串的形式出现的,在字符串中\也有特殊的含义,本身还需要转义。所以如果匹配一次"\n",字符串中要写成'\\n',那么正则里就要写成"\\\\n",这样就太麻烦了。在正则表达式中,有很多有特殊意义的是元字符,比如\n和\s等,如果要在正则中匹配正常的"\n"而不是"换行符"就需要对"\"进行转义,变成'\\'。贪婪匹配:在满足匹配时,匹配尽可能长的字符串,默认情况下,采用贪婪匹配。为将贪婪匹配模式转为非贪婪匹配模式,会匹配尽量短的字符串。原创 2023-09-17 14:50:07 · 114 阅读 · 0 评论 -
包与正则表达式
随着模块数目的增多,把所有模块不加区分地放到一起也是极不合理的,于是Python为我们提供了一种把模块组织到一起的方法,即创建一个包。包就是一个含有__init__.py文件的文件夹,文件夹内可以组织子模块或子包,例如需要强调的是# 1. 在python3中,即使包下没有__init__.py文件,import 包仍然不会报错,而在python2中,包下一定要有该文件,否则import 包报错# 2. 创建包的目的不是为了运行,而是被导入使用,记住,包只是模块的一种形式而已,包的本质就是一种模块。原创 2023-09-16 15:02:22 · 255 阅读 · 1 评论 -
模块的使用
在Python中,一个py文件就是一个模块,文件名为xxx.py模块名则是xxx,导入模块可以引用模块中已经写好的功能。如果把开发程序比喻成制造一台电脑,编写模块就像是在制造电脑的零部件,准备好零部件后,剩下的工作就是按照逻辑把它们组装到一起。将程序模块化会使得程序的组织结构清晰,维护起来更加方便。比起直接开发一个完整的程序,单独开发一个小的模块也会更加简单,并且程序中的模块与电脑中的零部件稍微不同的是:程序中的模块可以被重复使用。原创 2023-09-15 14:49:11 · 281 阅读 · 1 评论 -
内置函数与迭代器
迭代器即用来迭代取值的工具,而迭代是重复反馈过程的活动,其目的通常是为了逼近所需的目标或结果,每一次对过程的重复称为一次“迭代”,而每一次迭代得到的结果会作为下一次迭代的初始值,单纯的重复并不是迭代print(msg)下述while循环才是一个迭代过程,不仅满足重复,而且以每次重新赋值后的index值作为下一次循环中新的索引进行取值,反复迭代,最终可以取尽列表中的值index=0index+=1。原创 2023-09-13 15:08:28 · 222 阅读 · 1 评论 -
迭代器与生成器
迭代器主要就是一个迭代取值,另外一种取值方式就是索引(下标)取值迭代取值1. 不依赖于索引取值的一种取值方式2. 不能够重复取值,只能够从左往右固定取值索引取值1. 它能够重复取值(通过索引l[0])2. 它需要是容器类型。原创 2023-09-14 14:49:49 · 192 阅读 · 1 评论 -
函数递归与算法
函数不仅可以嵌套定义,还可以嵌套调用,即在调用一个函数的过程中,函数内部又调用另一个函数,而函数的递归调用指的是在调用一个函数的过程中又直接或间接地调用该函数本身例如,在调用f1的过程中,又调用f1,这就是直接调用函数f1本身: 递归调用1: 在调用f1的过程中,又调用f2,而在调用f2的过程中又调用f1,这就是间接调用函数f1本身 递归调用2: 从上图可以看出,两种情况下的递归调用都是一个无限循环的过程,但在python对函数的递归调用的深度做了限制,因而并不会像大家所想的那样进入无限循原创 2023-09-12 14:59:41 · 233 阅读 · 1 评论 -
装饰器(2)
先执行 @outer再执行 @login_auth。原创 2023-09-11 14:54:11 · 142 阅读 · 0 评论 -
装饰器(1)
软件的设计应该遵循开放封闭原则,即对扩展是开放的,而对修改是封闭的。对扩展开放,意味着有新的需求或变化时,可以对现有代码进行扩展,以适应新的情况。对修改封闭,意味着对象一旦设计完成,就可以独立完成其工作,而不要对其进行修改。软件包含的所有功能的源代码以及调用方式,都应该避免修改,否则一旦改错,则极有可能产生连锁反应,最终导致程序崩溃,而对于上线后的软件,新需求或者变化又层出不穷,我们必须为程序提供扩展的可能性,这就用到了装饰器。‘装饰’:代指为被装饰对象添加新的功能‘器’:代指器具/工具。原创 2023-09-08 14:55:29 · 147 阅读 · 1 评论 -
Python基础
编程就是人把自己想命令计算机干的事用编程语言翻译出来并写到文件里(这一系列的文件就是程序),那么为什么要编程?人类编程的目的就是为了让计算机按照人类的思维逻辑(程序)自发地去工作从而把人力解放出来。综上,我们接下来的学习应该分为两个层面1、为了更好地控制人类的奴隶(即计算机),我们需要学习计算机是由什么组成的、它能做什么事、它是怎样工作的(详见计算机组成原理、操作系统概述)2、我们需要学习编程语言,从而把原来需要人力来完成的业务(比如ATM和购物)交给计算机去做。原创 2023-08-22 16:14:03 · 77 阅读 · 3 评论 -
数据类型的内置方法
方法就是提前内置给各个数据类型的一些功能# 方法的表现形式int(res) # 方法名()# 语法格式数据类型.方法名()原创 2023-08-30 15:24:01 · 68 阅读 · 1 评论 -
函数基础与文件处理
def 函数名(参数1,参数2,...):"""函数注释"""函数体return 值1. def 就是定义函数的关键字,它不能够省略,必须写2. my_len():函数名,函数名的命名遵循变量的命名规范,他也是必填的,不能省略的,括号不能省略3. a, b称为是函数的参数,是可选的,可有可无参数就是执行函数的一些前提条件4. '''函数注释'''注释不参与函数的执行,只起到函数功能的提示作用,以及各个参数是什么意思# 可有可无的,但是,推荐每个函数都加上函数注释。原创 2023-09-05 15:15:22 · 152 阅读 · 0 评论 -
基本运算符与程序控制
a=10,b=20的运算: 优先级:not>and>or 举个例子:原创 2023-08-28 15:13:45 · 60 阅读 · 0 评论 -
Python的文件处理
应用程序运行过程中产生的数据最先都是存放于内存中的,若想永久保存下来,必须要保存于硬盘中。应用程序若想操作硬件必须通过操作系统,而文件就是操作系统提供给应用程序来操作硬盘的虚拟概念,用户或应用程序对文件的操作,就是向操作系统发起调用,然后由操作系统完成对硬盘的具体操作。原创 2023-09-04 15:15:14 · 348 阅读 · 1 评论 -
Python语法入门与pycharm的使用
1. 什么是变量?即变化的量,用于记录事物的变化状态,其实就是保存数据的一种方式。2. 如何使用变量?例:生活中:姓名:kevin年龄:18性别:male程序中:"""语法格式:变量名 赋值符号 变量值底层原理:1. 先在内存空间中申请一块空间来存储变量值kevin2. 把变量名username绑定给变量值kevin的空间地址。原创 2023-08-24 15:19:21 · 108 阅读 · 1 评论 -
可变与不可变类型和内置方法
s = set() # 空集合。原创 2023-08-31 15:36:25 · 91 阅读 · 0 评论 -
字符编码的介绍
字符编码的前提它只跟字符类型和文本类型相关。跟视频文件、音频文件、图片文件等无关人类在与计算机交互时,用的都是人类能读懂的字符,如中文字符、英文字符、日文字符等。而计算机内部只能够认识二进制01,计算机之所以能够认识各种各样的字符,那是因为计算机的内部维护着一张字符编码表。毫无疑问,由人类的字符到计算机中的数字,必须经历一个过程,如下:翻译的过程必须参照一个特定的标准,该标准称之为字符编码表,该表上存放的就是字符与数字一一对应的关系。原创 2023-09-01 15:06:19 · 311 阅读 · 1 评论 -
Python语法入门与数据类型
字典就是使用大括号括起来,内部存放多个元素值,元素与元素之间使用逗号隔开,但是,元素类型是key:value的形式,key是对value的解释型信息,value才是真正的变量值。元组就是使用小括号括起来,内部存放多个元素值,元素与元素之间使用逗号隔开,它不能够修改,其余的跟列表都一样,也是索引(下标)来取值。username = '''kevin''' # 当三引号的左边有赋值符号的时候就是字符串,否则是注释。"""只要是input接收的数据类型全部都是str类型的,不管你输入的类型是什么类型的"""原创 2023-08-25 14:57:45 · 79 阅读 · 1 评论 -
编程语言与Python介绍
1989年,Guido开始写Python语言的编译器。1991年,第一个Python编译器诞生。它是用C语言实现的,并能够调用C语言的库文件。从一出生,Python已经具有了:类,函数,异常处理,包含表和词典在内的核心数据类型,以及模块为基础的拓展系统。Python 1.0 - January 1994 增加了 lambda, map, filter and reduce.Python 2.0 - October 16, 2000,加入了内存回收机制,构成了现在Python语言框架的基础。原创 2023-08-23 14:55:48 · 102 阅读 · 0 评论 -
名称空间与函数对象
名称空间即存放名字与对象映射/绑定关系的地方。对于x=3,Python会申请内存空间存放对象3,然后将名字x与3的绑定关系存放于名称空间中,del x表示清除该绑定关系。原创 2023-09-07 15:07:38 · 132 阅读 · 1 评论 -
Python循环结构
print('正在执行你的指令:%s' % cmd) # 当用户输入q的时候,结束程序。print('正在执行你的指令:%s' % cmd) # 当用户输入q的时候,结束程序。start=0&filter= # 第一页。continue # 跳出while循环的本次循环 --------------- 本层。"""如果一旦出现了死循环,CPU的利用率会极速拉满,导致其他程序也不能用,甚至于死机""""""for循环不会出现死循环,它的循环条件不是我们来控制,是人家内部已经控制好了"""原创 2023-08-29 15:05:21 · 44 阅读 · 1 评论 -
函数的参数
关键字:return1. 每一个函数不行必须要有返回值的,可有可无2. 当函数中没有return关键字,那么,函数的返回结果是什么?None3. 只有是return关键字后面的数据才是函数的返回结果4. 一个函数中只能有一个return关键字,函数体体代码只有遇到return直接退出5. return后面可以返回值多个值,逗号隔开,以元组的形式返回。原创 2023-09-06 15:09:04 · 168 阅读 · 1 评论