Python面试题
一、Python基础
1.1 基础语法
1.1.1 输入与输出
1.1. 代码中要修改不可变数据会发现什么问题?抛出什么异常?
代码不会正常运行,抛出TypeError异常
1.2. a=,b=2不用中间变量交换a和b的值?
# 方法一
a = a+b
b = a-b
a = a-b
# 方法二
a=a^b
b=b^a
a=a^b
# 方法三
a,b=b,a
1.3.print调用python中底层的什么办法?
# print方法默认调用sys.stdout.write方法,即往控制台打印字符擦混
1.4. 下面代码输出结果是什么?
#
1.5.简述你对input()函数的理解?
# 在Python3中,input()获取用户输入,不论用户输入的是什么,获取到的都是字符串类型的.
# 在python2中,raw_input()和input(),raw_input()和python3中的input()作用是一样的,input()输入的是什么数据类型,获取到的就是什么数据类型.
1.1.2 条件与循环
2.1 range与xrange的区别?
# 两者用法相同,不同的是range返回的结果是一个列表,而xrange的结果是一个生成器,前者是直接开辟一块内存空间来保存列表,后者是边循环边利用,只有使用时才会开辟内存空间,所以当列表很长时,使用xrange性能比range好
2.2 以下Python程序的输出
for i in range(5,0,-1):
print(i)
# 5 4 3 2 1
说一说深浅拷贝?
# 浅copy: 会在内存中新开辟一个空间,存放这个copy的列表,但是列表里面的内容还是沿用之前对象的内存地址