面试写过的一些python基础的笔试题,一些记忆深刻的写下来:
一.基础面试题
1.代码中要修改不可变数据会出现什么问题,抛出什么异常?
答:代码不能正常运行,会抛出typeerror类型的错误
2.a=1,b=2 不使用中间变量交互a,b的值?
答:第一种方法:
a = a+b
b = a -b
a = a-b
第二中方法
a,b=b,a
第三种方法
a = a^ b
b = b ^ a
a = a ^ b
3.print调用了python中底层的什么方法?
print方法默认调用了sys.stdout.write方法,即向控制台输入字符串
4.简述对input()函数的理解?
python3中,调用input(),是获取用户输入,不管用户输入的是什么数字类型,都已字符串来进行处理。
python2中有raw_input()和input(),其中raw_input()和python3中的用法一样,而input()则是用户输入什么类型就是什么类型,如123就是int类型
5.zip()函数
a = [1,2,3]
b = [4,5,6]
c = [4,5,6,7,8]
zipped = zip(a,b) # 打包为元组的列表
[(1, 4), (2, 5), (3, 6)]zip(a,c) # 元素个数与最短的列表一致
[(1, 4), (2, 5), (3, 6)]zip(*zipped) # 与 zip 相反,*zipped 可理解为解压,返回二维矩阵式
[(1, 2, 3), (4, 5, 6)]
6.python2中的range和xrange的区别
在python2中range返回值是一个列表,而xrange返回值是一个可迭代对象,range返回的列表会在内存中开辟一个空间来储存列表,而xrange边用边开辟空间,如果是一个很长的列表考虑到性能问题那么建议使用xrange
7.range()函数
range(start, stop[, step])
range(10) # 从 0 开始到 10
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]range(1, 11) # 从 1 开始到 11
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]range(0, 30, 5) # 步长为 5
[0, 5, 10, 15, 20, 25]range(0, 10, 3) # 步长为 3
[0, 3, 6, 9]range(0, -10, -1) # 负数
[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]range(0)
[]range(1, 0)
[]
8.read,readline,和readlines的区别?
read:读取整个文件
readline:读取下一行使用生成器的方法
readlines: 读取整个文件到迭代器中以提供我们遍历
9.常用的python标准库:
random随机,time时间,os操作系统,pymysql连接MySQL数据库,pymongo连接mongodb数据库,threading线程,multiprocessing进程,queue队列
第三方库:
flask,django,scrapy,celery,virtualenv,selenium,xadmin,requests,hashlib,MD5
常用的科学计算库:
Numpy,scipy,pandas
10__init__和__new__的区别:
__init__会在创建对象后初始化对象,new__是在对象创建之前初始化一个对象返回给__init
11.python中如何实现随机数:
random.randint(a,b) 随机生成一个整数,并且该整数在a到b之间(a,b都可以取到)
random.random() 生成0-1之间的随机浮点数
random.uniform(a,b) 随机生成a到b之间的浮点数
random.randrange(a,b,step) 在指定的集合中,以step为基数随机取一个数
random.choice 从特定的序列中随机取一个元素,这个序列可以是字符串,元组,列表。
12.输入某年某月某日,判断这天是这一年的第几天(可以使用python的标准模块)
import datetime
def dayofyear():
year = int(input("请输入年份:"))
mon = int(input("请输入月份:"))
day = int(input("请输入日期:"))
date1 = datetime.date(year=year,month=mon,day=day)
date2 = datetime.datet(year= year,month=1,day=1)
days = int((date1-date2).days) + 1
return days
13.打乱一个排列好的list对象alist:
import random
alist = [1,2,3]
random.shuffle(alist) #这个shuffle是改变原有的list对象的顺序
- os.path和sys.path分别代表什么:
os.path:代表系统路径文件的操作
sys.path:只要是对python解释器的系统环境参数的操作(动态的改变python解释器的搜索路径)
后续还会更新整理!!!
更多推荐
python基础面试题(1)
发布评论