首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

python核心知识汇总(精编版)

实际应用中遇到多种数据类型混在一起情况可使用JSON序列化处理: json.dumps() 函数,接受 Python 基本数据类型,然后将其序列化为 string。...返回函数通常赋予一个变量,这个变量可以在后面被继续执行调用。 不定长参数 参数个数不确定时使用不定长参数,有两种类型分别为*args和**kwargs。...通过一个函数来改变某个变量值,通常有两种方法:第一种直接将可变数据类型(比如列表,字典,集合)当作参数传入,直接在其上修改;第二种创建一个新变量,来保存修改后值,然后将其返回给原变量。...成员函数正常函数,第一个参数必须self;可通过函数实现查询或修改类属性等功能。...如何规避GIL影响: CPU密集可以使用多进程+进程 IO密集使用多线程/协程 将关键性能代码放到C中实现 为什么有了GIL还要关注线程安全:python中只有原子操作可以保证线程安全,即一个操作如果一个字节码指令可以完成就是原子

1.4K10

python学习总结

字典Dict Python内置了字典,使用key-value存储,具有极快查找速度。和list相比,查找速度要高很多。 为什么dict查找速度这么快?因为dict实现原理和查字典一样。...传值还是传引用 Python参数传递遇到一个有趣问题函数传参传值还是传引用?...yield就是将函数变成了一个生成器,函数执行过程中使用yield就好像是用yield将执行中断多次,每次中断都会通过yield返回当前迭代值。 数据量较大使用生成器效率更高。...装饰器 函数一个对象,函数对象也可以被赋值给变量,所以,通过变量也能调用函数。在代码运行期间动态增加功能方式,称为装饰器。使用Python@语法,把装饰器置于函数定义处。...也就是在Python中,可以动态创建类,类也是对象,这就是使用关键字classPython在幕后做事情,这些都是通过元类实现。 那么到底什么元类呢?

1K50
您找到你想要的搜索结果了吗?
是的
没有找到

Python 基础知识学习

,除了正常定义必选参数外,还可以使用默认参数可变参数和关键字参数,使得函数定义出来接口,不但能处理复杂参数,还可以简化调用代码。...if lang is None: lang = [] lang.append('python') return lang 总结: 定义函数默认参数函数默认参数必须指向不变对象,建议使用...None,str 这些不可变对象处理 可变参数 可变参数就是传入参数个数可变,可以是1个、2个到任意个,还可以是0个。...#6 关键字参数 可变参数允许你传入0个或任意个参数,这些可变参数函数调用时自动组装为一个tuple。...在调用函数,可以只传入必选参数,也可以传入任意个数关键字参数

46220

python语法

list) 映像类型: 字典(dict) 集合类型: 可变集合(set) 不可变集合(frozenset) python数据类型(按可变性划分) 可哈希,不可变数据类型: 数字类型 不可变集合(frozenset...) 字符串(str) 元组(tuple) 可变数据类型: 字典(dict) 列表(list) 可变集合(set) python中引号作用: ‘  ‘ “  “ '''  ''' 单引号和双引号基本没区别...私有方法 也是通过在内部定义一个公有的方法,该公有的方法调用该私有方法,在外部调用该公有的方法间接访问该私有方法。 强制访问私有方法办法:对象调用这个类私有方法。具体: 对象名...._class__privateFunctionName() 私有字段 在类中定义了私有字段,外部不能访问,只能通过在内部定义函数访问这个私有字段,外部调用函数间接访问该私有字段。...也可以使用Value和Array 进程通过Pool创建多进程。

1.2K30

Python 面试基础

4.列出 Python可变数据类型和不可变数据类型为什么? # 不可变数据类型:即数据被创建之后,数据值将不再发生改变,有数值、字符、元祖类型。...另辟蹊径:方法总比困难,在进行快速开发,我们应该优先实现功能而不是拘泥于运行效率,所以遇到一些暂时不能解决BUG可以考虑另外实现方法。...静态方法:不访问类属性和实例属性,通过类或实例调用,相当于一个普通函数。...Python内存:内存概念就是预先在内存中申请一定数量,大小相等 内存块留作备用,有新内存需求,就先从内存池中分配内存给这个需求,不够了之后再申请新内存。...python内存管理机制——Pymalloc:python内存管理机制都有两套实现,一套针对小对象,就是大小小于256bits,pymalloc会在内存池中申请内存空间;大于256bits

1.2K30

如何释放Python占用内存?

需要注意使用某个引用作为参数,传递给getrefcount()参数实际上创建了一个临时引用。因此,getrefcount()所得到结果,会比期望1。...内存机制 Python内存机制以金字塔行: -1,-2层主要由操作系统进行操作, 第0层C中malloc,free等内存分配和释放函数进行操作 第1层和第2层内存,有Python接口函数...PyMem_Malloc函数实现对象小于256K时有该层直接分配内存 第3层最上层,也就是我们对Python对象直接操作 在 C 中如果频繁调用 malloc 与 free 会产生性能问题...大块内存 经由内存登记内存到最后还是会回收到内存,并不会调用 C free 释放掉,以便下次使用。...总结表格: 注意:可变指的是可变数据类型,比如:dic, list等;不可变指不可变数据类型,比如 数值,字符串,元组 参考:https://blog.csdn.net/Elon15/article/

1.4K10

工具 | 学习总结:当我学完Python我学了些什么

Python给我最大印象就是语法简洁,就像写伪代码一样,很多其他语言要用很多行才能实现操作Python可能几行就搞定了,这让人摆脱了繁杂语法而专注于问题本身,这也正是我为什么不太喜欢Java原因之一...3.定义默认参数需要牢记:默认参数必须指向不变对象。否则第一次调用和第二次调用结果会不一样,因为可变默认参数调用后改变了。 4.可变参数:传入参数个数可变,可以是0个或多个。...这样可以使代码更简短,同时可对参数进行必要检查。 6.通过多重继承,可使子类拥有多个父类所有功能。 7.在类中__call__方法可使实例对象像函数那样直接调用,作用即是该方法定义过程。...七、进程与线程 1.Python用mutiprocessing模块来实现多进程。 2.如果要大量创建子进程,可以使用进程,示例如下: ?...要使用进程需新建Pool对象,对Pool对象调用join()使等待池中所有子进程运行完毕,调用join()方法之前必须调用close(),且此后无法再新加子进程。

975100

python基础题目大全,测试你水平,巩固知识(含答案)

1、为什么学习Python? 人生苦短?人间不值得?想想自己初心吧! 2、通过什么途径学习Python?...a = [1,2,3]正常列表 b = [(1),(2),(3)] 虽然列表每个元素加上了括号,但是括号内只有一个元素并且没有逗号,其数据类型元素本身数据类型 b = [(1,),(2,...Python类可以继承多个类,那么其寻找类方法方式有两种: 经典类(主要在python2版本中没有主动继承object类),继承情况下,会按照深度优先方式查找 新式类(python3...静态方法:既不是用类中属性又不使用对象中属性,由类或者对象调用方法,依赖python装饰器@staticmethod来实现 类方法:只使用类中静态变量,一般都是由类调用,依赖python装饰器...对于不可变数据(如数字和字符串),解释器会在程序不同部分共享内存,以便节约内存。 二、垃圾回收 1,一个对象引用计数归零,它将被垃圾收集机制处理掉。

88920

熬夜吐血整理Python 面试题,帮助涨薪50%,请务必收藏

os:提供了不少与操作系统相关联函数 sys: 通常用于命令行参数 re: 正则匹配 math: 数学运算 datetime:处理日期时间 Python可变数据类型和不可变数据类型分别有?...dict key 值进行排序,最后返回结果一个对 key 值排序好list; sorted 对 tuple, dict 依然有效,而 sort 不行; 解释 Python可变类型和不可变类型...1.Python可变类型有list,dict;不可变类型有string,number,tuple. 2.进行修改操作可变类型传递内存中地址,也就是说,直接修改内存中值,并没有开辟新内存...类方法:类对象方法,在定义需要在上方使用 @classmethod 进行装饰,形参为 cls ,表示类对象,类对象和实例对象都可调用 类实例方法:类实例化对象方法,只能由实例对象调用,形参为...可以通过加入默认参数来避免退化 一个函数只做一件事,就要尽量保证抽象层级一致性,所有语句尽量在一个粒度上。若在一个函数处理件事,不利于代码重用; 请阐述同步,异步,阻塞,非阻塞概念?

74140

20分钟搞定Python 函数基础知识

Python函数在其他语言中也叫做过程或子例程,那么这些被包装起来语句通过一个函数名称来调用。 有了函数,我们可以在很大程度上减少复制及粘贴代码次数了(相信很多人在刚开始都有这样体验)。...除了正常定义必选参数外,还可以使用默认参数可变参数和关键字参数,使得函数定义出来接口,不但能处理复杂参数,还可以简化调用代码。 1. 默认参数 默认参数使得API简洁,但不失灵活性。...一个参数有默认值调用时如果不传递此参数,会使用默认值。...lst 通常来说,默认参数可变时候,需要特别注意作用域问题,我们需要上述技巧(不可变数据类型值传递,可变数据类型引用传递。)。...# 传递了与上不同数据类型 'PythonPythonPythonPython' 四、总结 Python函数具有非常灵活参数形态,既可以实现简单调用,又可以传入非常复杂参数

65530

10分钟学会 Python 函数基础知识

Python函数在其他语言中也叫做过程或子例程,那么这些被包装起来语句通过一个函数名称来调用。 有了函数,我们可以在很大程度上减少复制及粘贴代码次数了(相信很多人在刚开始都有这样体验)。...除了正常定义必选参数外,还可以使用默认参数可变参数和关键字参数,使得函数定义出来接口,不但能处理复杂参数,还可以简化调用代码。 1. 默认参数 默认参数使得API简洁,但不失灵活性。...一个参数有默认值调用时如果不传递此参数,会使用默认值。...lst 通常来说,默认参数可变时候,需要特别注意作用域问题,我们需要上述技巧(不可变数据类型值传递,可变数据类型引用传递。)。...# 传递了与上不同数据类型 'PythonPythonPythonPython' 四、总结 Python函数具有非常灵活参数形态,既可以实现简单调用,又可以传入非常复杂参数

70530

python学习笔记

无append(),insert()等函数 为区别与(1)区别,只有一个元素并且会有歧义,后面加一个逗号,即(1,) ---- 条件判断 条件判断 python使用if语句实现配合elif,else...和list比较,dict有以下几个特点: 查找和插入速度极快,不会随着key增加而变慢; 需要占用大量内存,内存浪费。 key必须可变整数或字符串,不可使用list。...--- ## 函数 - 处理有规律重复等问题,使用函数。 --- ### 调用函数 - 对于内置函数调用时需要知道函数`名称`和`参数`。...除了正常定义必选参数外,还可以使用默认参数可变参数和关键字参数,使得函数定义出来接口,不但能处理复杂参数,还可以简化调用代码。 默认参数作用是降低函数调用难度。...在计算机中,函数调用通过栈(stack)这种数据结构来实现。进入函数调用,栈就会增加一个栈帧,函数返回就会减一层栈帧。由于栈大小无限。所以,递归调用次数过多,回导致溢出。

2.7K21

电话面试题总结,Python基础部分

1.python 常见数据类型 int string dict list tuple 2.上面常见数据类型有哪些可变,哪些可变为什么?...dict list 可变 int string tuple可变 本质 可以作为字典key,就是不可变 3....字典通过哈希表实现。也就是说,字典一个数组,而数组索引经过哈希函数处理后得到。...认为 list 参数会在 extendList 每次被调用时候会被设置成它默认值 []。 尽管如此,实际发生事情,新默认列表仅仅只在函数被定义创建一次。...随后 extendList 没有被指定列表参数调用时候,其使用同一个列表。这就是为什么函数被定义时候,表达式用默认参数被计算,而不是它被调用时候。

94920

Python 经典面试题 二

2、__new__必须要有返回值,返回实例化出来实例,这点在自己实现__new__要特别注意,可以 return 父类(通过 super(当前类名, cls))__new__出来实例,或者直接...4、如果__new__创建当前类实例,会自动调用__init__函数通过 return 语句里面调用__new__函数第一个参数 cls 来保证当前类实例,如果其他类类名,;那么实际创建返回就是其他类实例...,其实就不会调用当前类__init__函数,也不会调用其他类__init__函数。...3.列出 Python可变数据类型和不可变数据类型为什么?...1、可变数据类型:list、dict、set 2、不可变数据类型:int/float、str、tuple 原理:可变数据类型即公用一个内存空间地址,不可变数据类型即每产生一个对象就会产生一个内存地址。

35252

Python后端技术栈(一)

Python 并发库 1.6数据库 1.MySQL 数据库、索引优化 2.关系型和 NoSQL 使用场景 3.Redis 缓存(常用数据类型以及使用场景,底层实现了解会更好) 1.7Python Web...2.1.2 Python 作为后端语言优缺点 为什么使用 Python ? 答:它是一门胶水语言,轮子,应用广泛;语言灵活,生产力高,一些创业公司以及外包项目节省时间首选语言。...也就是函数在传参时候,我们可以通过关键字参数方式,指定参数名传参,避免参数太多时候搞混。...2.3.3 Python 中 *args 和 **kwargs 函数传递中,他们处理可变参数。如果使用 *args那么会将所有的参数打包成一个 tuple 对象。...**kwargs 则是将所有的关键字参数打包成一个 dict 对象。 2.4 Python 异常机制 2.4.1什么 Python 异常? 答:异常就是一种错误处理机制。

4.9K52

Python函数参数之全面讲解

除了正常定义必选参数外,还可以使用默认参数可变参数和关键字参数,使得函数定义出来接口,不但能处理复杂参数,还可以简化调用代码。 默认参数 默认参数使得API简洁,但不失灵活性。...一个参数有默认值调用时如果不传递此参数,会使用默认值。...lst 通常来说,默认参数可变时候,需要特别注意作用域问题,我们需要上述技巧(不可变数据类型值传递,可变数据类型引用传递。)。...L内容,则下次调用时,默认参数内容就变了,不再函数定义[]了。...: *之后必须有参数 非命名参数有默认值,命名参数可以没有默认值 默认参数应该在每段参数最后 使用参数,不能使用可变位置参数可变关键之参数必须放在命名参数之后 总结 Python函数具有非常灵活参数形态

1.3K50

python 和 java区别( 不断更新中 )

python 跟 java 一样强类型语言,也就是说它不会根据环境变化自动改变数据类型 python 动态语言,而 java 静态语言。...在这个范围内所有的整数都只会被建立一次 与 java 类似,java 叫常量,[-128,127],通过 IntegerCache 来实现 ( Integer [-128,127) 大整数python...类似 python字典 key 不能可变可变会报错,而java中没有此限制,虽然说可能不应该以可变对象为 key python 序列( list )、字典( dict )、集合( set...,符合动态语言标识,而java 只能返回特定类型 Python 函数参数可以通过关键字指定,而 java 方法不可以。...Python 函数有默认参数,而 java方法 没有 当我们在函数中引用一个变量Python 将隐式地默认该变量为全局变量。

34210

Python入门教程笔记(五)集合(set)及函数

函数参数可以是任意数据类型,只要函数内部逻辑可以处理即可。...,默认参数意思这个参数没有传递时候,参数使用定义默认值。...,却报错了,这是因为在使用可变参数,没有考虑周全导致,因为可变参数长度可能0,长度为0时候,就会出现除0错误。...五一、函数使用可变关键字参数 可变参数使用上确实方便,函数会把可变参数当作tuple去处理,tuple在使用上有一定局限性,比如有时候想找到特定位置参数,只能通过下标的方式去寻找,如果顺序发生变化得时候...是的没错,dictPython会把可变关键字参数当作dict处理;对于可变关键字参数,一般使用**kwargs来表示。

1.2K51

python面试总结_python面试题总结(1)

我们使用iter()函数创建迭代器。  list、dict、str等数据类型可迭代对象,并不是迭代器。...可以用方法isinstance()来进行判断  为什么list、dict、str等数据类型不是Iterator?  ...可以把这个数据流看做一个有序序列,但我们却不能提前知道序列长度,只能不断通过next()函数实现按需计算下一个数据,所以Iterator计算是惰性,只有在需要返回下一个数据它才会计算。  ...*args参数作为一个tuple传入函数中。**kwargs参数作为一个dict传入函数中。  44、python中match()和search()区别?  ...换句话说,一个异步过程调用发出后,调用者不会立刻得到结果。而是在调用发出后,被调用通过状态、通知来通知调用者,或通过回调函数处理这个调用。  85、python适合场景有哪些?

98120

Python面试题

可以使用int函数 如 int(‘3’) 结果由字符串’3’变为整型3 (2)python内建数据类型有哪些?...列表可变,能添加修改删除元素;而元组可变,不能添加修改删除元素。 元组比列表访问和处理速度快 列表不能为字典键,而元组可以。...(13)列出python可变数据类型和不可变数据类型可变数据类型:列表、字典 不可变数据类型:数值型、字符串、元组 (14)字典如何删除键?...__init__初始化方法,创建对象后,就立刻被默认调用了, 可接收参数 __new__至少要一个参数cls,代表当前类,次参数在实例化时由python解释器自动识别。...datetime —- 处理日期时间 (32)用lambda函数实现两个数相乘 sum = lambda a,b:a*b print(sum) (33)如何在python使用多进制数字

2.7K10
领券