python面试模拟真题讲解
一、选择题(32分)
1、python不支持的数据类型有:(A)
A、char B、int C、float D、list
2、x = “foo”
y = 2
print(x+y) (E)
A.foo B.foofoo C.foo2 D.2 E.An exception is thrown
解释:不同数据类型不可以相加,但是字符串可以与数字相乘,以上例题若改为print(x*y),结果为B答案
3、关于字符串下列说法错误的是:(B)
A、字符应该视为长度为1的字符串 B、字符串以\0标志字符串的结束
C、既可以用单引号,也可以用双引号创建字符串 D、在三引号字符串中可以包含换行回车等特殊字符
4、以下不能创建一个字典的语句是:(C)
A、dic1 = {} B、dic2 = {123:345} C、dic3 = {[1,2,3]:'uestc'} D、dic3 = {(1,2,3):'uestc'}
解释:字典的key值必须为不可变数据类型
5.答案为:(D)
Kvps = {‘1’:1,’2’:2}
theCopy = kvps
kvps[‘1’] = 5
sum = kvps[‘1’] + theCopy[‘1’]
Print sum
A.1 B.2 C.7 D.10
解释:kvps与thecopy是赋值关系,指向的为同一个内存地址,一个发生变化,则均会发生变化
6、以下何者是不合法的布尔表达式:(B)
A.x in range(6) B.3=a C.e>5 and 4==f D(x-6)>5
解释:py2中range()为列表类型,xrange()为一个生成器,py3中只有range(),与py2中的xrange()性质基本相同,A答案在这三种环境中均为合法的bool值,
bool表达式即有判断作用的语句,B答案为赋值,无判断作用
7、下列表达式的值为True的是:(无答案)
A.5+4j>2-3j B.3>2>2 C.e>5 and 4==f D.(x-6)>5
解释:A答案为复数,复数不可以比大小
8、已知x=43,ch=‘A’,y = 1,则表达式(x>=y and ch<‘b’ and y)的值是:(B)
A、0 B、1 C、出错 D、True
解释:结果与y值相同,若表达式改为:(x>=y and ch<‘b’ and y>0),则结果为:True
9、下列表达式中返回 为True的是:(C)
A、3>2>2 B、’abc’>’xyz’ C、0x56 >56 D、(3,2)<(‘a’,’b’)
解释:A、B结果为False,正确答案为C,十六进制数字比十进制大,D答案不合法,int与str数据类型不可以比较,若改为('a',2)<('b',3)则输出True
10、下列Python语句正确的事:(AD)
A、min = x if x < y else y B、max = x > y ? x : y (c语言三元运算符) C、if(x>y) print(x) D、while True:pass
11.若k为整形,下述while循环执的次数为:(A)
k=1000
while k>1:
print k
k=k/2
A.9 B.10 C.11 D.100
解释:通过print语句判断为py2中代码,py2中除法为向下取整
12、以下叙述正确的是:(B)
A、continue语句的作用是结束整个循环的执行 B、只能在循环体内使用break语句
C、在循环体内使用break语句或continue语句的作用相同 D、从多层循环嵌套中退出时,只能使用goto语句
13、关于python中的复数,下列说法错误的是:(B)
A、表示复数的语法是real+image j B、实部和虚部都是浮点数 C、虚部必须后缀j且j不区分大小写 D、方法conjugate返回复数的共轭复数
14、下面的语句哪个会无限循环下去:(B)
A、for a in range(10):
time.sleep(10)
B、while 1<10:
time.sleep(10)
C、while True:
break
D、a = [3,-1,',']
for i in a[:]:
if not a:
break
15、下面的代码,哪些会输出1,2,3三个数字(多选,选错不得分):(BD)
A 、for i in range(3):
print(i)
B、aList = [0,1,2]
for i in aList:
print(i+1)
C、i = 1
while i < 3:
print(i) i+=1
D、for i in range(3):
print(i+1)
16、Python如何定义一个函数:(C)
A、class <name>(<type> arg1,<type> arg2,…<type> argN) B、function <name>(arg1,arg2,…argN)
C、def <name>(arg1,arg2,…argN) D、def <name>(<type> arg1,<type> arg2,…<type> argN)
二、填空题(10分)
1、以下函数需要在其中饮用一个全局变量k,请填写语句: def fun():
_____#global.k
k = k+1
2、L=range(100) #生成器可以可以直接作为列表取值
1) 取第一到第三个元素_______L[0:4]
2) 取倒数第二个元素_______L[-2]
3) 取后十个元素_______L[-10:]
4) 把L复制给L1用_______L1=L.copy()
3、判断dict有没有某个key用的方法是_______dic.get(key)
4、获取list的元素个数,和向末尾追加元素的方法分别是______len() _______append()
5.以下的代码的输出将是什么: _______
def extendList(val,list=[]):
list.append(val)
return list
list1 = extendList(10)
list2 = extendList(123, [])
list3 = extendList('a')
print('list1 = % s' %list1) #输出结果为:list1 = [10, 'a']
print('list2 = % s' %list2) #输出结果为:list2 = [123]
print('list3 = % s' %list3) #输出结果为:list3 = [10, 'a']
解释:函数中可变默认参数存在陷阱,重复调用会使原默认参数发生变化
6.下 程序的输出结果是:_________yes
x=True
y=False
z=False
if x or y and x:
print "yes"
else:
print "no"
三、简答题(20分)
1、如何判断一个变量是不是字符串。------if type(name)==str
2、is 和 == 的区别。
3、Python 如何实现tuple和list的转换。------tuple(),list()
4、list和tuple有什么不同。------list为可变数据类型,tuple为不可变数据类型
5、如何得到列表list的交集与差集。------利用set(),将列表转换为集合数据类型,利用difference()方法求差集,利用intersection()方法求交集
6、Python中定义函数时如何书写可变参数和关键字参数?------顺序为(位置参数,*args,关键参数,**kwargs)
7、*args和**kwargs在什么情况下会使 到?请给出使 **kwargs的事例------定义函数时参数不确定时用,例装饰器
8、请描述unicode,utf-8,gbk等编码之间的关系?
9、如何使用python删除一个文件
import os
os.remove(‘file’)
10、def func(a,b,*args,c=0,**kwargs):pass ,*args,**kwargs的作用是什么?
四、写代码(38分)
1、d={‘a’:1,’b’:2,’c’:3}请打印出key、value对(3分)
#思路一:
d={'a':1,'b':2,'c':3}
for i in d:
print(i,d[i])
#思路二:
d = {'a': 1, 'b': 2, 'c': 3}
for a,b in d.items():
print(a, b)
2、请写出 段Python代码实现删除 个list 的重复元素。(6分)
#方法一:
li=[1,'a',2,4,2,'a']
se=set(li)
li=list(se)
print(li)
#方法二:
li=[1,'a',2,4,2,'a']
result=[]
for i in range(0,len(li)):
for j in range(i+1,len(li)):
if li[i]==li[j]:
result.append(li[i])
for i in li:
if i not in result:
result.append(i)
print(result)
3、使 Python/C 上机解决以下题 (13分)
1)、斐波那契数列1,2,3,5,8,13,21.....根据这样的规律,编程求出400万以内最大的斐波那契数,并求出他是第 个斐波那契数。
li=[1,2]
while li[-1]<4000000:
li.append(li[-1]+li[-2])
del li[-1]
print(li[-1])
print(len(li))
2)、dicta = {"a":1,"b":2,"c":3,"d":4,"f":"hello"} ,dictb = {"b":3,"d":5,"e":7,"m":9,"k":"world"}
要求写 段代码,实现两个字典的相加,不同的key对应的值保留,相同的key对应的值相加后保留,如果是字符串就拼接,如上 例得到结果为:
dictc = {"a":1,"b":5,"c":3,"d":9,"e":7,"m":9,"f":"hello","k":"world"}
dicta={'a':1,'b':2,'c':3,'d':4,'f':'hello'}
dictb={'b':3,'d':5,'e':7,'m':9,'k':'world'}
dic={}
for key1 in dicta:
for key2 in dictb:
if key1==key2:
dic[key1]=dicta[key1]+dictb[key2]
for a in dicta:
if a not in dic:
dic[a]=dicta[a]
for b in dictb:
if b not in dic:
dic[b]=dictb[b]
print(dic)
5、什么是装饰器?写 个装饰器,可以打印输出 法执 时长的信息(8分)
装饰器:在不修改原函数内容及调用方式上,实现函数的功能扩展
import time
def timmer(func):
def inner(*args,**kwargs):
start=time.time()
ret=func(*args,**kwargs)
end=time.time()
print(end-start)
return ret
return inner
@timmer
def name(a,b):
print('%s+%s等于%s' %(a,b,a+b))
name(3,5)
6、请写出log的实现(主要功能是打印函数名)(8分)
@log
def now():
print ‘2017-08-31’
>>>now()
输出: call now():
2017-08-31
def log(func):
def inner(*args,**kwargs):
print('call %s()' %func.__name__)
ret=func(*args,**kwargs)
return ret
return inner
@log
def now():
print('2017-08-31')
now()
data={'time':'2016-08-05T13;13:05',
'some_ID':'ID1234',
'graps1':{'fld1':1,'fld2':2},
'xxx2':{'fld3':0,'fld5':0.4},
'fld6':11,
'fld7':7,
'fld':8
}
# 类递归思想 # 栈的思想
fields = 'fld2|fld3|fld7|fld9'
fields_lst = fields.split('|') #['fld2', 'fld3', 'fld7', 'fld9']
result = {}
data_lst = [1]
while data != 1:
for key in data:
if key in fields_lst:
result[key] = data[key]
if type(data[key]) == dict:
data_lst.append(data[key])
data = data_lst.pop()
print(result)
python面试模拟真题讲解的更多相关文章
- 《PHP面试笔试真题库》——PHP面试的好帮手
你好,是我琉忆. 一个文艺的PHP开发工程师. 很荣幸能够在这里带来我的第一本新书--<PHP程序员面试笔试真题库>. 一.创作过程 <PHP 程序员面试笔试真题库>是我的第三 ...
- 《PHP程序员面试笔试真题解析》——新书上线
你好,是我--琉忆.很高兴可以跟你分享我的新书. 很高兴,在出版了PHP程序员面试笔试宝典后迎来了我的第二本书出版--<PHP程序员面试笔试真题解析>. 如果你是一个热爱PHP的程序员,刚 ...
- 2019年京东Java研发岗社招面经(面试经历+真题总结+经验分享)!
本篇先以日历形式回顾秋招之路,方便各位参考某厂的处理进度:然后是总结归纳春秋招Java面试题库:最后做个总结还有展望,开始新的征程~ 面试经历京东面试真题面试经验分享1.面试经历 2018年的冬季特别 ...
- python基础---递归函数真题解析
方法一.有如下值集合 [11,22,33,44,55,66,77,88,99,90...],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中. 即: {'k ...
- python面试的100题(2)
def print_directory_contents(sPath): """ 这个函数接收文件夹的名称作为输入参数 返回该文件夹中文件的路径 以及其包含文件夹中文件的 ...
- 【白嫖】IT笔试面试真题讲解系列文章+视频
视频讲解IT公司面试的高频考题~ 持续更新中,欢迎点赞转发~ 干货|名企高频考点指令篇-查看Linux硬盘空间使用情况 干货 | 名企高频考点指令篇-Linux查看CPU内存和系统版本 干货 | 名企 ...
- unity,C#,游戏面试笔试真题
最开始的两家公司笔试面试题目 一家公司是学校聘请研究教育方面VR课件的公司,面试没几天,就收到了面试通过的消息,后面因为通过了另一家游戏公司而拒绝了. 另一家公司是一家游戏外企,在春熙路,当时笔试还可 ...
- python面试的100题(21)
正则表达式 94.请写出一段代码用正则匹配出ip? ip地址的生成规则. IP地址,是由32位数字二进制转为四个十进制的字符串组成. 怎么转化?下面讲解: 二进制:111111111111111111 ...
- python面试的100题(6)
7.请反转字符串 "aStr"? print("aStr"[::-1]) python实现字符串反转 第一种:使用字符串切片 result = s[::-1] ...
随机推荐
- Linux下C程序内存泄露检测
在linux下些C语言程序,最大的问题就是没有一个好的编程IDE,当然想kdevelop等工具都相当的强大,但我还是习惯使用kdevelop工具,由于没有一个习惯的编程IDE,内存检测也就成了在lin ...
- Spring Cloud学习介绍
最近在学spring cloud, 整理了下 简单知识要求: 1.要了解springboot 2.了解分布式架构 3.了解微服务 4.了解springcloud是做什么的 带着这些,初学者 就至少有个 ...
- Apache 错误日志
配置文件中:httpd.conf ErrorLog "/usr/local/var/log/apache2/error_log1" CustomLog "/usr/loc ...
- 正则表达式通用匹配ip地址及主机检测
在使用正则表达式匹配ip地址时如果不限定ip正确格式,一些场景下可能会产生不一样的结果,比如ip数值超范围,ip段超范围等,在使用正则表达式匹配ip地址时要注意几点: 1,字符界定:使用 \< ...
- php中foreach循环遍历二维数组
最近在用tp3.2框架,在查询的时候用到了select(),这条语句返回的是二维数组,所以在对返回的数据做处理时,遇到了些麻烦,百度了下foreach,终于用foreach解决了数据的筛选问题 (因为 ...
- JZOJ 5849 d
Description Input Output Data Constraint 做法:考虑贪心使得mina*minb最大,先以a为关键字排序,然后枚举删除最小的0~m个ai,对应删除最小的bi,然后 ...
- python实现导出excel表(前端+后端)
之前在做项目管理系统的时候需要实现将数据导出到excel表的功能,搜索之后发现了python的xlwt模块可以很好的实现这项功能. 首先是导入xlwt模块: import xlwtfrom io im ...
- django之media配置
一.没有配置Media avatar = models.FileField(upload_to='avatars/', default='/avatars/default.png') # 储存头像的m ...
- 源码级强力分析hadoop的RPC机制
分析对象: hadoop版本:hadoop 0.20.203.0 必备技术点: 1. 动态代理(参考 :http://weixiaolu.iteye.com/blog/1477774 )2. Java ...
- Java基础知识回顾(一):字符串小结
Java的基础知识回顾之字符串 一.引言 很多人喜欢在前面加入赘述,事实上去技术网站找相关的内容的一般都应当已经对相应知识有一定了解,因此我不再过多赘述字符串到底是什么东西,在官网中已经写得很明确了, ...