这篇文章给大家分享的是有关关于Python基础的面试题及解决方法的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。

=

1、python递归的最大层数?

998

2、求结果(and or or)

1.求结果:1or3print(1or3)#12.求结果:1and3print(1and3)#33.求结果:0and2and1print(0and2and1)#04.求结果:0and2or1print(0and2or1)#15.求结果:0and2or1or4print(0and2or1or4)#16.求结果:0orFlaseand1print(0orFalseand1)#Flase总结:  #xory如果x为真,则值为x,否则为y  #xandy如果x为真,则值为y,否则为x

运算符

1. 求结果:2 & 5

print(2&5)#10&101=>000=>0

2. 求结果:2 ^ 5

print(2^5)#10^101=>111=>1*2**0+1*2**1+1*2**2=1+2+4=7

13、ascii、unicode、utf-8、gbk 区别

python2内容进行编码(默认ascii),而python3对内容进行编码的默认为utf-8。ascii最多只能用8位来表示(一个字节),即:2**8=256,所以,ASCII码最多只能表示256个符号。unicode万国码,任何一个字符==两个字节utf-8万国码的升级版一个中文字符==三个字节英文是一个字节欧洲的是2个字节gbk国内版本一个中文字符==2个字节英文是一个字节gbk转utf-8需通过媒介unicode

4、字节码和机器码的区别

机器码,学名机器语言指令,有时也被称为原生码,是电脑的CPU可直接解读的数据。字节码是一种中间状态(中间码)的二进制代码(文件)。需要直译器转译后才能成为机器码。什么是机器码机器码(machinecode),学名机器语言指令,有时也被称为原生码(NativeCode),是电脑的CPU可直接解读的数据。通常意义上来理解的话,机器码就是计算机可以直接执行,并且执行速度最快的代码。总结:机器码是电脑CPU直接读取运行的机器指令,运行速度最快,但是非常晦涩难懂,也比较难编写什么是字节码字节码(Bytecode)是一种包含执行程序、由一序列op代码/数据对组成的二进制文件。字节码是一种中间码,它比机器码更抽象,需要直译器转译后才能成为机器码的中间代码。总结:字节码是一种中间状态(中间码)的二进制代码(文件)。需要直译器转译后才能成为机器码。-----------#is比较的是内存地址#==比较的是值#int具有范围:-5---256#对于int小数据池范围:-5----256创建的相间的数字,都指向同一个内存地址#对于字符串(面试)1、小数据池如果有空格,那指向两个内存地址,2、长度不能超过203、不能用特殊字符i='a'*20j='a'*20print(iisj)#Truei="a"*21j="a"*21print(iisj)#False关于编码所占字节unicode:所有字符(无论英文、中文等)1个字符:2个字节gbk:一个字符,英文1个字节,中文两个字节utf-8:英文1个字节、欧洲:2个字节,亚洲:3个字节在utf-8中,一个中文字符占用3个字节在gbk中一个汉字占用2个字节黎诗=utf-8(6字节)=48黎诗=gbk(4字节)=32字节和位的关系。  #一个字节(byte)=8位(bit)  #位为最小的单位简述变量命名规范  #1、以字母,数字,下划线任由结合  #2、不能以命名太长,不使用拼音,中文  #3、不能以数字开头  #4、不能用关键词

5、三元运算写法和应用场景?

应用场景:简化if语句#关于三元运算#结果+ if+条件+else+结果result='gt'if1>3else'lt'print(result)#lt#理解:如果条件为真,把if前面的值赋值给变量,否则把else后面的值赋值给变量。lambda表达式temp=lambdax,y:x+yprint(temp(4,10))#14可替代:deffoo(x,y):returnx+yprint(foo(4,10))#14

6、Python3和Python2的区别?

1:打印时,py2需要可以不需要加括号,py3需要python2:print('lili'),print'lili'python3:print('lili')python3必须加括号exec语句被python3废弃,统一使用exec函数2:内涵Python2:1,臃肿,源码的重复量很多。2,语法不清晰,掺杂着C,php,Java,的一些陋习。Python3:几乎是重构后的源码,规范,清晰,优美。3、输出中文的区别python2:要输出中文需加#-*-encoding:utf-8-*-Python3:直接搞4:input不同python2:raw_inputpython3:input统一使用input函数5:指定字节python2在编译安装时,可以通过参数-----enable-unicode=ucs2或-----enable-unicode=ucs4分别用于指定使用2个字节、4个字节表示一个unicode;python3无法进行选择,默认使用ucs4查看当前python中表示unicode字符串时占用的空间:imporsysprint(sys.maxunicode)#如果值是65535,则表示使用usc2标准,即:2个字节表示#如果值是1114111,则表示使用usc4标准,即:4个字节表示6:py2:xrange    rangepy3:range统一使用range,Python3中range的机制也进行修改并提高了大数据集生成效率7:在包的知识点里包:一群模块文件的集合+__init__区别:py2:必须有__init__   py3:不是必须的了8:不相等操作符"<>"被Python3废弃,统一使用"!="9:long整数类型被Python3废弃,统一使用int10:迭代器iterator的next()函数被Python3废弃,统一使用next(iterator)11:异常StandardError被Python3废弃,统一使用Exception12:字典变量的has_key函数被Python废弃,统一使用in关键词13:file函数被Python3废弃,统一使用open来处理文件,可以通过io.IOBase检查文件类型

7、用一行代码实现数值交换

a=1b=2a,b=b,a

8、Python3和Python2中int和long区别

在python3里,只有一种整数类型int,大多数情况下,和python2中的长整型类似。

9、xrange和range的区别

都在循环时使用,xrange内存性能更好,xrange用法与range完全相同,range一个生成list对象,xrange是生成器。

要生成很大的数字序列的时候,用xrange会比range性能优很多,因为不需要一上来就开辟一块很大的内存空间。

在python2中:

range([start,] stop[, step]),根据start与stop指定的范围以及step设定的步长,生成一个序列。

例子:

xrange用法与range完全相同,所不同的是生成的不是一个数组,而是一个生成器。

例子:

由上面的示例可以知道:要生成很大的数字序列的时候,用xrange会比range性能优很多,因为不需要一上来就开辟一块很大的内存空间,这两个基本上都是在循环的时候用。

在 Python 3 中,range() 是像 xrange() 那样实现,xrange()被抛弃。

10、文件操作时:xreadlines和readlines的区别?

readlines返回一个列表xreadlines返回一个生成器

感谢各位的阅读!关于关于Python基础的面试题及解决方法就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到吧!