
Python基础知识库
holysll
没有在深夜痛哭过的人,不足以谈人生
展开
-
【Python基础知识库】Python中字符串和字节串的区别
字符串和字节串的区别字符串有若干个字符组成,以字符为单位进行操作;字节串由若干个字节组成,以字节为单位进行操作。字符串和直接传出了操作的数据单元不同之外,它们支持的所有方法基本相同。字符串和字节串都是不可变序列,不能随意增加和删除数据。bytes只负责以字节序列的形式(二进制的形式)来存储数据,至于这些数据到底表示什么内容(字符串、数字、图片、音频等),完全由程序的解析方式决定。bytes只是简单记录内存中的原始数据,不在意这些数据的使用。字符串和字节串可以通过不同字符集原创 2020-07-05 00:55:51 · 4302 阅读 · 0 评论 -
【Python基础知识库】Python中的参数类型
python中参数类型有哪些位置参数:也叫必备参数,指函数调用时,传入的实参数量和位置、类型必须与函数定义时保持一致,即形参和实参的位置数量必须一致# 在调用func函数时,必须按位置传入name和age,多了少了都不行,否则会抛出TypeError异常def func(name, age): """ :param name: str :param age: int :return: tuple """ print(name, age)func(原创 2020-07-05 00:55:09 · 268 阅读 · 0 评论 -
【Python基础知识库】Python中函数传参过程
python中函数传参过程值传递值传递实际上就是把实际参数值的副本传入函数,不管函数对该值做了什么操作,而参数本身不会受到任何影响。def func(a, b): a, b = b, a print("func里交换处理完a的值为{},b的值为{}".format(a, b))if __name__ == '__main__': a, b = 3, 4 print("交换前a的值为{},b的值为{}".format(a, b)) func(3, 4)原创 2020-07-05 00:54:12 · 189 阅读 · 0 评论 -
【Python基础知识库】Python中bytes与bytearray
常识普及:通常在常用的ASCII、utf-8 和unicode 编码中,像 a 这样一个英文字符,在内存中占一个字节。一个汉字在ASCII和unicode编码里占两个字节,在utf-8 编码中占三个字节。一个字节有八位,也就是八个数字,也叫8个bit 。计算机中的最小储存单位就是bit,bit是二进制的,所以计算机中的数据全都是0和1,没有其他的数字。bytesbytes是字节组成的有序的不可变序列字符串按照不同的字符集编码encode返回直接序列bytesencode(encod.原创 2020-07-05 00:53:15 · 680 阅读 · 0 评论 -
【Python基础知识库】Python中yield语句的作用
yield语句的作用python之yield、yield from该关键字用于函数中会把函数包装为生成器(generator),调用生成器函数时,会返回一个生成器对象,生成器函数是生成器工厂。def func(): yield 1 yield 2 yield 3for i in func(): print(i)g = func()print(next(g))print(next(g))print(next(g))# 结果'''12312原创 2020-07-05 00:51:41 · 1165 阅读 · 0 评论 -
【Python基础知识库】Python中正则表达式
python中正则使用方式正则表达式常用的匹配规则模式描述****一般字符****.匹配除换行符"\n"和"\r"之外的任意字符,在re.S模式下则能匹配任意字符\转义字符,使下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符,如果原始字符串中含有* . ? + $ ^ [ ] ( ) { } | \,需要在前面加转义字符\才能正确表示,或者在字符串前面加个r房子转义[…]字符集,用来表示一组字符,对应的位置可以是字符集中任意一个字符,字原创 2020-07-05 00:49:44 · 357 阅读 · 0 评论 -
【Python基础知识库】Python常见的内置数据结构
python常见的内置数据结构字符串(string)由字符组成的有序的序列,是字符的集合使用单引号’’、双引号""、三引号’’’’’'表示有顺序、能索引、可迭代、元素能重复、不可变对象python3中,字符串就是Unicode类型字符串连接:"分隔符".join(iterable),如:"".join(['1', '2', '3'])。注意:可迭代对象iterable必须是字符串字符串拼接:通过str + str 将两个字符串拼接得到一个新的字符串字符串分割:原创 2020-07-05 00:49:21 · 279 阅读 · 0 评论 -
【Python基础知识库】Python中反射机制
python中反射机制Python的反射机制反射的核心本质其实就是通过字符串的形式导入模块,通过字符串的形式,去模块中找指定函数,并执行。利用字符串的形式去对象(模块)中操作(增删改查)成员,是一种基于字符串的事件驱动。实现思路:规定用户输入格式 模块名/函数名 通过__import__的形式导入模块,并通过 hasattr和getattr 检查并获取函数返回值。方法描述getattr根据字符串形式去某个模块中寻找东西hasattr根据字符串形式去某个模块中判断东西是原创 2020-07-05 00:47:15 · 229 阅读 · 0 评论 -
【Python基础知识库】Python中代码性能分析
如何分析python代码性能python程序代码性能分析和计时统计以下方法分别针对代码块、代码程序文件、 函数进行性能计时统计:time.time()或者datetime.datetime.now()# 结束时间-开始时间import timeimport datetimestart = time.time() # 或者datetime.datetime.now()func() # 需要统计运行时长的函数end = time.time()print(end - start)原创 2020-07-05 00:46:48 · 260 阅读 · 0 评论 -
【Python基础知识库】Python中字符串格式化
字符串格式化%格式化: C 语言风格的 sprintf 形式, 用%占位# %o 八进制输出print("八进制:%o" % 222)# %d 十进制整数输出print("整数:%d, %d, %d" % (1, 22.33, 0.25))# %x 十六进制输出print("十六进制:%x" % 12)# 浮点数保留两位小数print("浮点数保留两位小数:%.2f" % 3.1415926)# 万能格式 %r,把任何类型(str、int、float、list、tuple、原创 2020-07-05 00:46:21 · 152 阅读 · 0 评论 -
【Python基础知识库】Python中raise语句的作用
raise语句的作用当程序出错时,python会自动触发异常,也可以通过raise语句触发异常;一旦执行了raise语句,之后的语句不再执行;但如果加入了try...excepet...finally语句,except里的语句会被执行,finally一样也会被执行。raise语法格式:raise [Exception [, args [, traceback]]],参数Exception 是异常的类型数标准异常中任一种(如NameError),args 是自已提供的异常参数;参数traceback原创 2020-07-05 00:45:55 · 3533 阅读 · 0 评论 -
【Python基础知识库】Python中decimal精确计算
python decimal精确计算python decimal精确计算(1). Decimal接收int和string类型参数from decimal import *# 不能传入浮点数据,因为浮点数据就不准确a = Decimal(3.33)*100b = Decimal('3.33')*100c = Decimal(3)print(a)print(b)print(c)# 结果'''Decimal('333.0000000000000071054273576')Dec原创 2020-07-05 00:45:21 · 517 阅读 · 0 评论 -
【Python基础知识库】Python语言基础知识点梳理
1. Python语言的特性Python是一种解释型语言,不需要再运行之前进行编译。Python是一种动态类型语言,不需要声明变量的类型。python适合面向对象编程,允许类的定义以及组合和继承。2. python语言相比其他语言的优点和缺点优点简单易懂,灵活简洁强大的标准库和三方库活跃的社区,许多开源项目开发效率高,迭代便捷应用领域广泛,Web开发、网络编程、自动化运维、Linux系统管理、数据分析、科学计算、人工智能、机器学习缺点执行效率较差,异步生态不完善,相关原创 2020-07-05 00:44:35 · 928 阅读 · 0 评论 -
【Python基础知识库】Python捕获异常
python捕获异常及方法总结在编写程序或者调试程序时,或多或少存在BUG或者异常,这时候就需要进行异常的捕获,根据异常Traceback定位出错点,进行处理。异常类型(1) Python内置异常在Python中,异常也是对象,python的异常处理能力很强大,有很多内置异常,可以为用户准确反馈出错信息。BaseException是所有内置异常的基类,但用户自定义的类并不几层BaseException,所有的异常类都是从Exception继承,且都在exceptions模块中定义。pyth原创 2020-07-05 00:48:13 · 682 阅读 · 0 评论 -
【Python基础知识库】Python中元编程
Python黑魔法:元类和元编程Python 元编程元编程(Meta Programming)又叫超编程,是指某类计算机程序的编写,这类计算机程序的编写或者超重其他程序(或者自身)作为他们的数据,或者在运行完成部分本应该在编译时完成的工作。多数情况下,与手工编译全部代码相比,程序员可以获得更高的工作效率,或者给与程序员更大的灵活度去处理新的情形而无需重新编译。编写元程序的语言称之为元语言。被操作的程序的语言称之为“目标语言”。一门编程语言可以同时也是自身的元语言的能力称之为“反射”或者“自反”。原创 2020-07-04 19:00:48 · 244 阅读 · 0 评论 -
【Python基础知识库】Python中的高阶函数
高阶函数:一个函数可以作为参数传给另外一个函数,或者一个函数的返回值为另外一个函数(若返回值为该函数本身,则为递归),满足其一则为高阶函数。abs# Python内置的绝对值函数a = abs(-10) # 直接调用abs()函数f = abs # 函数本身赋值给变量,即变量指向函数b = f(-10)print(a)print(b)# 结果'''1010'''mapmap()函数会根据的函数对指定的序列做映射。map()函数语法:map(functio.原创 2020-07-04 18:58:36 · 2283 阅读 · 0 评论 -
【Python基础知识库】Python中重载
参考python 中的重载在Python中,具有重载的思想却没有重载的概念。实际上,Python编程中具有重载的目的却无重载的行为,或者说python并不需要重载。python是一门动态语言,不需要声明变量类型,函数中可以接受任何类型的参数也就无法根据参数类型来支持重载,python没有必要去考虑参数的类型问题,这些都可以在函数内部判断处理,并无必要去在写一个函数。python 有多种传参方式,默认参数、可变参数、可变关键字参数,可以处理函数参数中参数可变的问题。# python3.4 中提供的一个原创 2020-07-04 18:56:28 · 3088 阅读 · 1 评论 -
【Python基础知识库】Python中多态与多态性
多态:指的是以类事物有多种形态,如一个抽象类有多个子类,多态的概念依赖于继承;如在java中,一个函数由于函数签名不同,可以有同名的不同函数存在,调用的时候根据函数签名不同自动找到相应的函数执行。简单来说,就是同一事物的多种形态。Python中的多态不是语法,而是一种设计思想,多态的设计就是要完成对不同类型对象使用相同方法调用能得到各自期望的结果。# 多态:同一种事物的多种形态,动物分为人、猪、狗等等class Animal: def run(self): raise Att.原创 2020-07-04 18:54:50 · 237 阅读 · 0 评论 -
【Python基础知识库】Python类的继承
继承是一种创建新类的方式,新创建的类加子类,继承的叫父类、超类、基类。继承是类与类之间的关系,继承的作用是减少代码冗余、提高重用性。继承的特征:所有的类都继承自object类,即所有的类都是object类的子类;子类一旦继承父类,则可以使用父类中除了私有成员外的所有内容;子类继承父类后,并没有捡父类成员完全复制到子类中,而是通过引用关系访问调用;子类可以定义独有的成员属性和方法;子类中定义的成员和父类成员如果同名,则优先使用子类成员;子类如果想扩充父类的方法,可以再定义新方法的同时访问父类.原创 2020-07-04 18:53:22 · 314 阅读 · 0 评论 -
【Python基础知识库】Python类的封装
python 类的封装面向对象编程的一个重要特点就是数据封装。类的封装包含数据封装、方法封装、属性封装。# 数据封装,将程序中需要的数据按照统一的格式封装在类型的内部,通过该类型的对象包装使用数据class Student: def __init__(self, name, age): self.name = name self.age = age# 方法封装,函数和方法混合开发, 处理和某个数据关联的功能-> 功能代码封装成函数,将函数封装在类原创 2020-07-04 18:52:19 · 870 阅读 · 0 评论 -
【Python基础知识库】Python中range与Xrange的区别
range()是Python的内置函数,用于创建整数的列表,可以生成递减或者递增的数列。用法:range(start, stop, step),生成一个序列。# python3下的range,其实已经把xrange合并过来了x = range(0,5)print(type(x))print(x)# python3结果'''<class 'range'>range(0, 5)'''# python2结果'''<type 'list'>[0, 1, 2.原创 2020-07-04 18:48:03 · 405 阅读 · 0 评论 -
【Python基础知识库】Python中search与match的区别
search()函数会在整个字符串内查找模式匹配,直到找到第一个匹配,然后返回一个包含匹配信息的对象,该对象可以通过group()方法得到匹配的字符串,如果没有字符串没有匹配到,则返回None。import reprint(re.search("time", "datetime"))print(re.search("time", "datetime").span())print(re.search("time1", "datetime"))print(re.search("hello", ".原创 2020-07-04 18:46:45 · 155 阅读 · 0 评论 -
【Python基础知识库】Python浅拷贝与深拷贝
赋值:对象赋值实际上是对象的引用。类似于改名字,内部结构、内存空间地址都一样,赋值给另一个变量的时候,并没有拷贝这个对象,而是拷贝了这个对象的引用。浅拷贝:另开辟新内存空间,只拷贝父结构,没有拷贝子对象,所以原始数据改变,子对象会改变。import copya = [1, 2, 3, ['a', 'b']]b = copy.copy(a)a.append(5)print(a)print(b)# 结果1'''a = [1, 2, 3, ['a', 'b'], 5]b = [1.原创 2020-07-04 18:43:30 · 131 阅读 · 0 评论 -
【Python基础知识库】Python闭包
闭包(closure)是函数式编程的重要的语法结构,也是一种组织代码的结构,提高了代码的复用性。简单说,外函数的内部定义了一个内函数,内部函数使用了外部函数的临时变量,并外函数的返回值是内函数的引用。产生闭包需满足的条件:必须有一个内嵌函数内嵌函数必须引用外部函数的变量外部函数的返回值必须是内嵌函数简单说,闭包就是根据不同的配置信息得到不同的结果,装饰器就是一种闭包,闭包有效的减少了函数所需定义的参数数目。闭包的好处:- 取代硬编码中的常量- 避免使用全局值,并提供某种形式的数据.原创 2020-07-04 18:42:10 · 121 阅读 · 0 评论 -
【Python基础知识库】Python语法糖
在计算及科学中,语法糖是某种特殊的语法,对语言的功能没有影响,但对程序员来说,有更好的易用性,简洁性、可读性、方便性。比如索引切片、列表推导式、字典推导式、生成器推导式等等。切片操作Python切片操作详细例子s = '123456's[:3] # 结果为'123',取索引索引小于3的值,或叫“取前3位”s[3:] # 结果为'456', 取索引大于等于3的值,或叫“从第4位取到最后”s[2:4] # 结果为'34', 取索引大于等2,小于4的值,或叫“取第3位到第4位”s[:].原创 2020-07-04 18:38:02 · 762 阅读 · 0 评论 -
【Python基础知识库】Python鸭子类型
编程语言中动态类型语言的一种设计风格,一个对象的特征不是由父类决定,而是通过对象的方法决定。类与类之间不用共同继承一个父类,只需要将它们做的像一件事物即可。注重对象的行为,而非对象的类型,一个对象能都昨晚函数、表达是的参数,取决于其行为而非类型归属。class Duck: def __init__(self, name): self.name = name def quack(self): print("gua gua")class Man.原创 2020-07-04 18:36:10 · 155 阅读 · 0 评论 -
【Python基础知识库】Python2.x 与Python3.x的主要区别
详细参考输入, py2中:raw_input(); py3中:input()输出, py2中:print语句; py3中:print()函数除法,py2中整数间进行’/‘和’//‘运算返回的是整数,而py3的’/'运算返回的是浮点数遍历范围,py2中:range()或xrange(); py3中:不等于,py2中:range不等于,py2中:<>或!= ; py3中:!=编码问题,py3默认使用unicode,字节是bytes;而py2中字节是str, 默认支原创 2020-07-04 18:32:45 · 166 阅读 · 0 评论 -
【Python基础知识库】Python内存管理与垃圾回收机制
Python垃圾回收机制详解Python GC主要使用引用计数(reference counting)来跟踪和回收垃圾。在引用计数的基础上,通过标记清除机制(mark and sweep)解决容器对象可能产生的循环引用问题,通过分代回收(generation collection)策略,以以空间换时间的方法来提高垃圾回收的效率。引用计数引用计数法的原理是每个对象维护一个ob_ref,用来记录当前对象被引用的次数,也就是来追踪到底有多少引用指向了这个对象,当发生(对象被创建、对象被引用、对象被原创 2020-07-04 18:30:21 · 173 阅读 · 0 评论 -
【Python基础知识库】Python文件流操作
打开文件f=open('file_name', 'file_type')if f: # 判断文件是否打开file_typewith open('file_name', 'file_type') as f:访问模式w: 只写r:只读a: 追加写入rb: 二进制只读wb:二进制写入ab:二进制追加写入r+:打开一个文件用于读写,文件指针将会放在文件的开头。w+:打开一个文件用于读写,如果文件已经存在则将其覆盖,如果文件不存在,则创建新文件。a+:打开一个文件.原创 2020-07-04 18:23:40 · 292 阅读 · 0 评论 -
【Python基础知识库】Python常用库
标准库网友总结参考官网中文参考 os:提供了不少于操作系统相关联的函数 sys:通常用于命令行参数 res:正则表达式操作 math:数学运算 decimal:十进制定点和浮点运算 datetime:日期时间 collections:容器数据类型 json:JSON 编码和解码器 base64:Base16, Base32, Base64, Base85 数据编码 heapq:堆队列算法..原创 2020-07-04 18:17:46 · 471 阅读 · 0 评论 -
【Python基础知识库】Python中@staticmethod和@classmethod和实例方法
what-is-the-difference-between-staticmethod-and-classmethod-in-pythonreal python上详细知识静态方法静态方法:其实和普通的方法一样,不需要对谁进行绑定,必须有@staticmethod修饰,类和实例都可以访问静态方法,调用方式A。static_foo(x)和a.static_foo(x)。类方法类方法:即在类里定义的函数方法,需要@classmethod修饰,并且有个隐藏参数cls,传递的是类而不是.原创 2020-07-04 18:16:18 · 119 阅读 · 0 评论 -
【Python基础知识库】Python中的元类metaclass
不会很常用,在ORM这种复杂结构中会遇到,同时在看一些框架源代码的过程中可能会遇到很多元类的实例,看起来很晦涩。推荐Stack overflow 一些专业解答,也可以参考下这篇博客的深刻理解,很详细。str是用来创建字符串对象的类int是用来创建整数对象的类type就是创建类对象的类通过type函数动态创建类# type的语法type(class_name, class_parents, class_attr_dict)""" class_name: 类名 clas.原创 2020-07-04 18:13:36 · 245 阅读 · 0 评论 -
【Python基础知识库】Python单例模式
单例模式使用__new__方法class Singleton(object): def __new__(cls, *args, **kw): if not hasattr(cls, '_instance'): orig = super(Singleton, cls) cls._instance = orig.__new__(cls, *args, **kw) return cls._instanceclass原创 2020-07-04 03:01:56 · 113 阅读 · 0 评论 -
【Python基础知识库】Python字符串格式化
字符串格式化%格式化: C 语言风格的 sprintf 形式, 用%占位# %o 八进制输出print("八进制:%o" % 222)# %d 十进制整数输出print("整数:%d, %d, %d" % (1, 22.33, 0.25))# %x 十六进制输出print("十六进制:%x" % 12)# 浮点数保留两位小数print("浮点数保留两位小数:%.2f" % 3.1415926)# 万能格式 %r,把任何类型(str、int、float、list、tuple、原创 2020-07-04 02:59:03 · 1869 阅读 · 0 评论 -
【Python基础知识库】Python常见的设计模式
常见的设计模式以下是一些前人的总结参考:Python 实现23种设计模式Python 23种设计模式全Python 常用设计模式python 设计模式1. 工厂模式简单工厂模式的不足在简单工厂模式中,只提供了一个工厂类,该工厂类处于对产品类进行实例化的中心位置,它知道每个产品对象的创建细节,并决定何时实例化哪一个产品类。简单工厂模式最大的缺点是当有新产品要加入时,必须修改工厂类,加入必要的处理逻辑,这违背了“开闭原则”。在简单工厂模式中,所有的产品都是由同一个工厂创建的,工厂类的职原创 2020-07-04 02:56:13 · 333 阅读 · 0 评论 -
【Python基础知识库】Python装饰器的一些总结
以下是一些前人的总结参考:python装饰器Python装饰器各种类型详解Python各种类型装饰器详解说明python装饰器的4种类型一文看懂Python系列之装饰器python装饰器简介装饰器本质上是一个函数,可以让其他函数在不需要做任何代码处理的前提下增加额外的功能,装饰器的返回值也是一个函数对象(函数的引用)。它经常用于有切面需求的场景,比如:插入日志、性能测试、事务处理、缓存、权限校验等场景,装饰器是解决这类问题的绝佳设计。有了装饰器,我们就可以抽离出大量与函数功能本身无关的雷.原创 2020-05-24 23:47:12 · 270 阅读 · 0 评论 -
【Python基础知识库】Pandas库中的函数
Pandas 是基于NumPy 的一种工具,支持大部分的Numpy语言风格的数组计算,尤其是数组函数以及没有for循环的各种数据处理。尽管Pandas采用了很多Numpy的代码风格,但最大的不同在于Pandas是用来处理表格型或异质型数据的,而Numpy更适合处理同质型的数值类数组数据。 Pandas 所包含的数据结构和数据处理工具的设计,使得数据清洗和分析非常快捷,并经常和其他...原创 2019-04-21 23:41:46 · 8378 阅读 · 0 评论 -
【Python基础知识库】Numpy库里有哪些函数?
NumPy是Numerical Python的简称,是目前python高性能科学计算和数据分析中最为重要的基础包。ndarray, 具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组。 用于对整组数据进行快速运算的标准数学函数(无需编写循环)。 用于读写磁盘数据的工具以及用于操作内存映射文件的工具。 线性代数、随机数生成以及傅里叶变换功能。 用于集成C、C++、Fortr...原创 2019-04-19 01:26:50 · 2337 阅读 · 0 评论 -
【Python基础知识库】线程、进程、协程、锁的总结
最近面试老遇到别人问多进程、多线程、协程和锁相关的问题,下面进行总结一下,欢迎各位大佬指教。question1:简单说说多进程、多线程和协程的原理、特点进程: 进程是系统进行资源(CPU、内存、时间等)分配和调度的一个独立的最小的单位,它是程序执行时的一个实例。程序运行时系统就会创建一个进程,并为它分配资源,然后把该进程放入进程就绪队列,进程调度器选中它的时候就会为...原创 2019-04-17 01:31:16 · 323 阅读 · 0 评论