
python 基础题
python基础题,常见的基础面试题
CHERISHGF
多读书,多思考
展开
-
125.\d+的含义
\d+表示1个或多个0到9的数字,是整数部分(至少是一位整数的整数部分)\.{0,1}表示0个或1个小数点,因为点在正则表达式中表示任意字符,所以这里需要用转义符\,使它变回原来的小数点的意思,{0,1}表示0或1个,也就是可以有或者没有小数点\d*表示0个或多个0到9的数字,是小数部分,0个时表示这个数没有小数部分,只有整数部分...原创 2021-12-06 16:07:41 · 4085 阅读 · 0 评论 -
124.提高python的运行效率
提高python运行效率的办法1.使用生成器,因为可以节约大量内存2.循环代码优化,避免过多重复代码的执行3.核心模块用Cython,PyPy等,提高效率4.多进程,多线程,协程5.多个判断,将最有可能先发生的条件放在外面,减少判断次数...原创 2021-12-06 16:06:41 · 212 阅读 · 0 评论 -
123.sort与sorted的区别
list.sort 在list的基础上修改,无返回值sorted()有返回值是新的list根据条件进行排序:new_list=sorted(list,key=lambda x:x)new_list=sorted(list,key=lambda x:(x<0,abs(x)))new_list=sorted(list,key=lambda x:x['age'],reverse=True)...原创 2021-12-06 16:06:02 · 108 阅读 · 0 评论 -
122.python乐观锁与悲观锁
悲观锁,就很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁乐观锁,就是很乐观,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,可以使用版本号等机制,乐观锁适用于多读的应用类型,这样可以提高吞吐量...原创 2021-12-06 16:04:42 · 1613 阅读 · 0 评论 -
121. 简述 yield和yield from关键字。
奥力给!最后一题了def generator1(): item = range(10) for i in item: yield idef generator2(): yield 'a' yield 'b' yield 'c' yield from generator1() #yield from iterable本质上等于...转载 2020-04-10 11:42:31 · 368 阅读 · 0 评论 -
1. Python和Java、PHP、C、C#、C++等其他语言的对比?
转载:https://www.cnblogs.com/ppf3678/p/10739261.html1.C语言,它既有高级语言的特点,又具有汇编语言的特点,它是结构式语言。C语言应用指针:可以直接进行靠近硬件的操作,但是C的指针操作不做保护,也给它带来了很多不安全的因素。C++在这方面做了改进,在保留了指针操作的同时又增强了安全性,受到了一些用户的支持,但是,由于这些改进增加语言的复杂度,也为...转载 2020-03-28 14:58:06 · 1716 阅读 · 0 评论 -
2. 简述解释型和编译型编程语言?
写好的代码,让计算机运行起来,要翻译成机器语言,这里翻译有两种方式,也就对应两种语言类型第一,代码全都写好,使用编译器编译成机器能认识的二进制文件,要运行程序的时候,直接调用编译好的二进制文件运行就行了。执行速度快,但是因为依赖编译器所以跨平台差。这类语言称为编译型语言:C、C++、Delphi、Pascal,Fortran。第二,机器运行的时候,我再一条一条的解释。执行速度慢点,但是没有...原创 2020-03-28 15:07:56 · 553 阅读 · 0 评论 -
3. 代码中要修改不可变数据会出现什么问题? 抛出什么异常?
python中不可变数据类型有:int、float、bool、string(字符串)、tuple(元组)。可变数据类型包括 list(列表)、dict(字典)、set(集合)。不可变数据类型就是说,如果这个数据类型对应的值改变了,那么它在内存中的地址也就改变了可变数据类型就更灵活点,如果数据类型对应的值改变了,你变就变,内存的地址不会改变。如果硬要改变,会报错,在你想改变它的那一句...原创 2020-03-28 15:21:14 · 777 阅读 · 0 评论 -
4. print 调用 Python 中底层的什么方法?
print 打印?专业点,往控制台输出。在python3里面是个函数,啥都能输出,想输出几个就输出几个没限制相当于sys.stdout.write(),但是这个一次只能输出一个...原创 2020-03-28 15:30:14 · 482 阅读 · 0 评论 -
5. 简述你对 input()函数的理解?
python3中,input()接受输入,输入都保存成字符串类型sys.stdin.readline()也接收输入,但是没input方便原创 2020-03-28 15:32:18 · 1526 阅读 · 0 评论 -
6. Python解释器种类以及特点?
解释器是啥?python不是解释型语言嘛,运行的时候要解释,这就是解释器python有多种解释器,主要是因为这些解释器是不同语言开发的,每个解释器有不同的特点,但是都能解释python代码五种解释器说明:其实我压根就不知道,我写代码然后能运行就好了,区别暂时体会不出来CPython当从Python官方网站下载并安装好Python2.7后,就直接获得了一个官方版本的解释器:Cpyth...转载 2020-03-28 15:38:58 · 363 阅读 · 0 评论 -
7. Python2 中 range 和 xrange 的区别?
range生成一个list列表,列表就是有个列表放在内存里,如果列表很大就很占内存xrange生成一个生成器对象,是个对象!在内存中只占用对象内存,想要下一个结果只需要next就行了。python3里面range结合上面了,所以就没xrange了...原创 2020-03-28 15:45:42 · 171 阅读 · 0 评论 -
8. 位和字节的关系?
我看不懂的关系,没啥关系一位(bit)就是二进制中的0或者1,这是最小的数据单位一个字节(Byte)存储空间的最小单位一个字节能放8个位,就这关系。9. b、B、KB、MB、GB 的关系?1 GB = 1024 MB1 MB = 1024 KB1 KB = 1024 B1 B = 8 bit一袋饼干放8片一盒饼干放1024袋...原创 2020-03-28 15:59:00 · 317 阅读 · 0 评论 -
10. 请至少列举5个 PEP8 规范(越多越好)。
PEP8 规范这是个啥?写python代码,要遵循的一些要求。完整版:https://blog.youkuaiyun.com/ratsniper/article/details/78954852自己随便记几个 缩进:使用4个空格的缩进,不要使用制表符(Tab键),禁止空格与Tab键混用。 换行:折行以确保其不会超过79个字符。这有助于小显示器用户阅读,也可以让大显示器能并排显示几个...转载 2020-03-28 16:06:50 · 1074 阅读 · 0 评论 -
11. python递归的最大层数?递归函数停止的条件?
https://blog.youkuaiyun.com/Damon_duanlei/article/details/86098806可以通过 sys.setrecursionlimit() 进行设置,但是一般默认不会超过3925-3929这个范围。import syssys.setrecursionlimit(3000) # 设置最大递归深度为3000https://blog.youkuaiyun.com...转载 2020-03-28 16:13:05 · 1356 阅读 · 0 评论 -
12. ascii、unicode、utf-8、gbk 区别?
ASCII:在计算机内部,所有信息最终都表示为一个二进制的字符串。每一个二进制位(bit)有0和1两种状态,因此8个二进制位可以组合出256种状态,这被称为字节(byte)。ASCII码一共规定了128个字符的编码,比如空格“SPACE”是32(二进制00100000),大写的字母A是65(二进制01000001)。这128个符号(包括32个不能打印出来的控制符号),只占用了一个字节的后面7位...原创 2020-03-28 16:17:34 · 1101 阅读 · 0 评论 -
13. 字节码和机器码的区别?
机器码是电脑CPU直接读取运行的机器指令,运行速度最快,但是非常晦涩难懂,也比较难编写,一般从业人员接触不到。(机器码就是电脑可以直接执行的代码。)字节码是一种中间状态(中间码)的二进制代码(文件)。需要直译器转译后才能成为机器码。(字节码需要转译成机器码,电脑才能执行。)具体见:https://www.cnblogs.com/qiumingcheng/p/5400265.html...转载 2020-03-28 16:25:58 · 515 阅读 · 0 评论 -
14. 三元运算规则以及应用场景?
三元运算符就是在赋值变量的时候,可以直接加判断,然后赋值格式:[on_true] if [expression] else [on_false]res = 值1 if 条件 else 值2原创 2020-03-28 16:40:26 · 1040 阅读 · 1 评论 -
15. 列举 Python2和Python3的区别?
没用过python2,但是有人建议python2也要学,学习python2.7以后的在具体用的时候在斟酌吧我遇到的就是python3中print要加括号,xrange不能使用,raw_input也不能用。应该还有好多细节方面,很多大神都整理了一、核心类差异1. Python3 对 Unicode 字符的原生支持。Python2 中使用 ASCII 码作为默认编码方式导致 strin...转载 2020-03-28 16:56:05 · 456 阅读 · 0 评论 -
16. Python3和Python2中 int 和 long的区别?
python3里面没有long类型,只有int类型原创 2020-03-28 16:59:51 · 1822 阅读 · 0 评论 -
17. 4G 内存怎么读取一个 5G 的数据?
方法一:可以通过生成器,分多次读取,每次读取数量相对少的数据(比如 500MB)进行处理,处理结束后在读取后面的 500MB 的数据。方法二:可以通过 linux 命令 split 切割成小文件,然后再对数据进行处理,此方法效率比较高。可以按照行数切割,可以按照文件大小切割。...转载 2020-03-28 17:04:09 · 288 阅读 · 0 评论 -
18. read、readline 和 readlines 的区别?
read(size)读字节readline,一行一行读进来readlines把所有都读进来,保存成一个列表,每一行是列表中的一个元素看https://www.cnblogs.com/yun1108/p/8967334.html写的详细...原创 2020-03-28 17:08:19 · 313 阅读 · 0 评论 -
19. 文件操作时:xreadlines和readlines的区别?
python3已经没有这个xreadlines的方法了这俩的区别类似于xrange和range,在使用的时候感觉不出来区别,但是二者返回值类型不一样,带有x的返回值是生成器,不带的返回值是列表...原创 2020-03-28 17:10:33 · 568 阅读 · 0 评论 -
20. 列举布尔值为False的常见值?
print("1. ", bool(0))print("2. ", bool(-0))print("3. ", bool(None))print("4. ", bool())print("5. ", bool(False))print("6. ", bool([]))print("7. ", bool(()))print("8. ", bool({}))print("9. ", ...原创 2020-03-28 17:12:56 · 2014 阅读 · 0 评论 -
21. 字符串、列表、元组、字典每个常用的5个方法?
字符串方法 描述 string.count(str, beg=0, end=len(string)) 返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数 string.endswith(obj, beg=0, end=len(string)) 检查...转载 2020-03-29 19:04:04 · 1192 阅读 · 0 评论 -
22. lambda表达式格式以及应用场景? 用lambda函数的好处?
lambda args:expressionexpression只能是表达式,不能是语句或者代码块可以接受多个参数,但是只返回一个值好处:1.轻便2.与map,filter,reduce函数式编程相结合使用用好的话非常强大filter(func,seq)通用一个布尔函数func来迭代遍历每个seq中的元素,返回一个使func返回值为true的元素的序列map(f...原创 2020-03-29 19:17:24 · 1128 阅读 · 0 评论 -
23. pass的作用?continue的作用? break的作用?
break语句的作用是终止当前循环,跳出循环体。主意,break只能跳出一层循环。continue语句的作用是终止本轮循环并开始下一轮循环,(这里要主意的是在开始下一轮循环之前,会先测试循环条件)。pass :不做任何事情,只起到占位的作用。...原创 2020-03-29 19:18:28 · 1928 阅读 · 0 评论 -
24. *arg和**kwarg作用
def f1(*args,**kwargs): print(args) print(kwargs)f1('a','b','c',i=3,j=4)('a', 'b', 'c'){'j': 4, 'i': 3}参数传递 形式: 位置参数:从左只有 关键字参数:按关键名称匹配混用两种参数时,左侧先写所有位置参数,再写关键字参数默认参数:有默认值地参数...原创 2020-03-29 19:37:02 · 809 阅读 · 0 评论 -
25. is和==的区别
is和==都是对对象进行比较判断作用的,但对对象比较判断的内容并不相同。下面来看看具体区别在哪。==比较操作符和is同一性运算符区别==是python标准操作符中的比较操作符,用来比较判断两个对象的value(值)是否相等,is也被叫做同一性运算符,这个运算符比较判断的是对象间的唯一身份标识,也就是id是否相同。只有数值型和字符串型的情况下,a is b才为True,当a和b是tu...原创 2020-03-29 19:39:38 · 250 阅读 · 0 评论 -
26. 简述Python的深浅拷贝以及应用场景?
原文:https://www.cnblogs.com/zhuifeng-mayi/p/9179647.html导入模块:import copy浅拷贝:copy.copy深拷贝:copy.deepcopy对于 数字 和 字符串 而言,赋值、浅拷贝和深拷贝无意义,因为其永远指向同一个内存地址。字面理解:浅拷贝指仅仅拷贝数据集合的第一层数据,深拷贝指拷贝数据集合的所有层。所以对于只有...转载 2020-03-30 13:04:04 · 369 阅读 · 0 评论 -
27. 拷贝的注意点?
python程序中存储的所有数据都是对象每个对象都有一个身份,类型,值实例被创建后,其身份和类型就不可改变如果对象值可以改变,则称为可变对象;如果对象的值不可改变,则称为不可变对象拷贝的注意点还是注意赋值、浅拷贝、深拷贝的区别...原创 2020-03-30 13:30:59 · 193 阅读 · 0 评论 -
28. Python垃圾回收机制?
原文:http://c.biancheng.net/view/5540.htmlhttps://www.cnblogs.com/kumata/p/9099134.htmlPython程序在运行时,需要在内存中开辟出一块空间,用于存放运行时产生的临时变量,计算完成后,再将结果输出到永久性存储器中。但是当数据量过大,或者内存空间管理不善,就很容易出现内存溢出的情况,程序可能会被操作系统终止。...转载 2020-03-30 13:48:56 · 149 阅读 · 0 评论 -
29. Python的可变类型和不可变类型?
实列被创建后,他的身份和类型就不可以改变如果对象值是可以修改的,则称为可变对象;list,dict当进行修改操作时,可变类型传递的是内存中的地址,也就是说,直接修改内存中的值,并没有开辟新的内存。执行 i += 1 时,内存地址都会变化,因为int 类型是不可变的。对于不可变类型int,无论创建多少个不可变类型,只要值相同,都指向同个内存地址。同样情况的还有比较短的字符串。如果...转载 2020-03-30 13:56:38 · 173 阅读 · 0 评论 -
30. 列举常见的内置函数?
自己用到的一些bin() 返回一个整数 int 或者长整数 long int 的二进制表示。abs() 此函数返回数字的绝对值。enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。id() 函数用于获取对象的内存地址。len() 方法返回对象(字符、...原创 2020-03-30 14:01:46 · 946 阅读 · 0 评论 -
31. filter、map、reduce的作用?
filter过滤器filter()为已知的序列的每个元素调用给定的布尔函数调用中,返回值为非零值的元素将被添加至一个列表中map映射器map()将函数调用“映射”到每个序列的对应元素上并返回一个含有所有返回值的列表reduce(func,seq,init)将二元函数作用于seq序列的元素,每次携带一对(先前结果以及下一个序列元素),连续地将现有的结果和下一个值作...原创 2020-03-30 14:31:13 · 779 阅读 · 0 评论 -
32. 常用的 Python 标准库都有哪些?
参考:https://www.cnblogs.com/jiangchunsheng/p/9275881.html数据挖掘相关的库,用的比较多扩展库 简介Numpy 提供数组支持,以及相应的高效处理函数。Scipy、Matplotlib、Pandas等库都依赖于它。Scipy 提供矩阵支持,以及矩阵相关的数值计算模块\包含的功能有最优化、线性代数、积分、插...转载 2020-03-30 14:36:30 · 575 阅读 · 0 评论 -
33. 至少列举8个常用模块都有那些?
原文https://blog.youkuaiyun.com/qq_40674583/article/details/81940974os模块,路径re模块,正则表达式sys模块,标准输入输出math模块,数学公式json模块,字符串与其他数据类型转换;pickle模块,序列化random模块,生成随机数time模块,时间模块request模型,HTTP请求库模块和impor...转载 2020-03-30 17:15:15 · 726 阅读 · 0 评论 -
34. re的match和search区别?
原文https://www.cnblogs.com/zhuifeng-mayi/p/9200871.html正则用的不多1、match()函数只检测RE是不是在string的开始位置匹配,search()会扫描整个string查找匹配;2、也就是说match()只有在0位置匹配成功的话才有返回,如果不是开始位置匹配成功的话,match()就返回none。3、例如:import r...转载 2020-03-30 17:32:05 · 198 阅读 · 0 评论 -
35. 什么是正则的贪婪匹配?
1、贪婪匹配总是尝试匹配尽可能多的字符2、非贪婪匹配是尝试匹配尽可能少的字符import resecret_code = 'hadkfalifexxIxxfasdjifja134xxlovexx23345sdfxxyouxx8dfse'b = re.findall('xx.*xx',secret_code) # 贪婪匹配 print (b) # ['xxIxxfasd...转载 2020-03-30 17:35:44 · 552 阅读 · 0 评论 -
36. 介绍一下 except 的作用和用法?
try-except语句:定义了进行异常监控的一段代码,并且提供了处理异常的机制try: try_suiteexcept Exception[,reason]: except_suitetry语句可以带多个 except子句,还可以有一个可选的else子句try: try_suiteexcept Exception[,reason]: suit...原创 2020-03-30 17:50:11 · 1612 阅读 · 0 评论