python面试宝典1

python基础

1、代码中修改不可变数据会出现什么问题?什么异常?

不会这次运行,报typeError错误异常

2、a=1,b=2,不用中间变量交换 a 和 b 的值?
a,b = b,a
a = a+b
b = a-b
a = a-b
3、print调用python中底层的什么方法?

sys.stdout.write方法,即往控制台打印字符串

4、理解下面代码,结果输出

在这里插入图片描述
在这里插入图片描述

5、对input()函数的理解

python3中,input()获取用户输入,不论用户输入的是什么,获取得到的都是字符串类型的。
python2中,raw_input()和input(),raw_input()是同python3中的input(),python2中的input()是指输入的是什么数据类型,获取到的就是什么数据类型。

6、理解代码,写出 A0,A1 至 An 的最终值

在这里插入图片描述
A0 = {‘a’: 1, ‘b’: 2, ‘c’: 3, ‘d’: 4, ‘e’:5}
A1 = [0,1,2,3,4,5,6,7,8,9]
A2 = []
A3 = [1,3,2,5,4]
A4 = [1,2,3,4,5]
A5 = {0:0,1:1,2:4,3:9,}
A6 = [[0,0],[1,1],[2,4],…]

不会的点:
‘a’ in A0 返回true
1 in A0 返回false
A0[‘a’] 返回1

7、python中os模块常见方法

os.remove()删除文件
os.rename()重命名文件
os.walk()生成目录树下的所有文件名
os.chdir()改变目录
os.mkdir创建目录
os.rmdir删除目录
os.listdir()列出指定目录的文件

8、4G内存怎么读取一个5G的数据

方法一:可以通过生成器,分多次读取,每次读取数量较少的数据进行处理,处理结束后再读取后面的数据
方法二:通过linux命令split切割成小文件,再对数据进行处理,

9、read、readline、readlines的区别

read:读取整个文件
readline:读取下一行,使用生成器方法
readlines:读取整个文件到一个迭代器供我们遍历

10、在except中return后还会不会执行finally中的代码,怎么抛出自定义异常?

会继续处理finally
用raise方法可以抛出自定义异常

11、介绍一下except的作用和用法

except: # 捕获所有异常
except:<异常名> :#捕获指定异常
except:<异常名>,<数据> #捕获指定异常及其附加数据
except:<异常名1,异常名2>:<数据>捕获异常名1或者异常名2,及附加的数据

12、python中标准库

os操作系统
time时间
random随机
pymysql连接数据库

13、赋值、浅拷贝和深拷贝的区别?

1,赋值:
在这里插入图片描述
用 a is b 来进行判断,返回true.表明地址相同,内容相同。也可以用id()来查看两个列表的地址是否相同

2,浅拷贝:
浅拷贝有三种形式:切片操作、工厂函数、copy 模块中的 copy 函数。
比如上述的列表 a;
切片操作:b = a[:] 或者 b = [x for x in a];
工厂函数:b = list(a);
copy 函数:b = copy.copy(a);

当我们使用 id(x) for x in a 和 id(x) for x in b 来查看 a 和 b 中元素的地址时,可以看到二者包含的元素的地址是相同的。
在这种情况下,列表 a 和 b 是不同的对象,修改列表 b 理论上不会影响到列表 a

浅拷贝之所以称之为浅拷贝,是它仅仅只拷贝了一层,在列表 a 中有一个嵌套的list,如果我们修改了它,情况就不一样了

3,深拷贝
深拷贝只有一种形式,copy 模块中的 deepcopy()函数。
深拷贝和浅拷贝对应,深拷贝拷贝了对象的所有元素,包括多层嵌套的元素。因此,它的时间和空间开销要高。

同样的对列表 a,如果使用 b = copy.deepcopy(a),再修改列表 b 将不会影响到列表 a,即使嵌套的列表具有更深的层次,也不会产生任何影响,因为深拷贝拷贝出来的对象根本就是一个全新的对象,不再与原来的对象有任何的关联。

14、__init__和__new__的区别?

init在对象创建后,对对象进行初始化
new是在对象创建之前创建一个对象,并将该对象返回给init

15、python里面生成随机数

使用模块random,在使用前需要import

random.random():生成一个0-1之间的浮点数
random.uniform(a,b) :生成[a,b]之间的浮点数
random.randint(a,b) :生成[a,b]之间的整数
random.randrange(a, b, step):在指定的集合[a,b)中,以 step 为基数随机取一个数
random.choice(sequence):从特定序列中随机取一个元素,这里的序列可以是字符串,列表,元组等

random.random()
random.uniform(a,b)
random.randint(a,b)
random,randrange(a,b,step)
random.choice(sequence)

16、输入某年某月某日,判断这一天是这一年的第几天?

函数:datetime.date(year = int(year),month=int(month),day = int(day))

天数计算:(date1-date2).days

import datetime
def dayoeyear():
	year = input('请输入年份:')
	month = input('请输入月份:')
	day = input('请输入天:')
	date1 = datetime.date(year = int(year),month=int(month),day = int(day))
	date2 = datetime.date(year int(year),month=1,day=1)
	return (date1-date2+1).days
17、os.path和sys.path分别代表什么?

os.path是用于对系统路径文件的操作
sys.path主要是对python解释器的系统环境参数的操作

18、python中os模块常见方法

os.remove()删除文件
os.rename()重命名文件
os.walk()生成目录树下的所有文件名
os.chdir()改变目录
os.mkdir()创建目录
os.rmdir()删除目录
os.listdir()列出指定目录的文件
os.getcwd()取得当前工作目录
os.chmod()改变目录权限
os.path.basename()去掉目录路径
os.path.dirname()去掉文件名,返回目录路径
os.path.join()将分离的各部分组合成一个路径名
os.path.split()返回(dirname(),basename())元组
os.path.splitext()(返回 filename,extension)元组
os.path.getatime\ctime\mtime 分别返回最近访问、创建、修改时间
os.path.getsize()返回文件大小
os.path.isabs()是否为绝对路径
os.path.isdir()是否为目录
os.path.isfile()是否为文件

19、模块和包的区别

模块:每一个python代码是一个模块,可以引用其他模块,比如对象和属性
包:许多python代码的文件夹是一个包,一个包可以包含模块和子文件夹

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值