模拟面试题一
一、选择题
1、python不支持的数据类型有
A、char
B、int
C、float
D、list

1 参考答案:A
参考答案
2、打印输出结果:
x = "foo"
y = 2
print(x + y)
A.foo B.foofoo C.foo2 D.2 E.An exception is thrown

1 D :一个是字符串,一个是数字,它们不能相加
参考答案
3、关于字符串下列说法错误的是:
A.字符应该视为长度为1的字符串
B.字符串以\0标志字符串的结束
C.既可以用单引号,也可以用双引号创建字符串
D.在三引号字符串中可以包含换行回车等特殊字符

1 参考答案:B
参考答案
4、以下不能创建一个字典的语句是:
A.dic1 = {}
B.dic2 = {123:345}
C.dic3 = {[1,2,3]:'uestc'}
D.dic4 = {(1,2,3):'uestc'}

C :字典的key必须是不可变数据类型参考答案
5、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

1 D:theCopy实际上是同一个指针指向{'1':1,'2':2}参考答案
6、以下何者是不合法的布尔表达式
A. x in range(6) B.3 = a
C.e > 5 and 4 == f C.D(X-6) > 5

1 参考答案:B
参考答案
7、下列表达式的值为True的是:
A.5+4j > 2-3j B.3> 2 == 2
C.e>5 and 4 == f D.(x-6) > 5

1 B:复位不能比较, 2 3>2 ==2 等价于:3 > 2 , 2 == 2 3 not and or :优先级从左到右参考答案
8、已知x= 43, ch = 'A',y = 1,则表达式(x>=y and ch<'b' and y)的值是:
A.0
B、1
C、出错
D、True

1 B:大写A的ASCII的值是65,小写a的ASCII的值是97
参考答案
9、下列表达式中返回为True的是:
A.3>2>2
B.'abc' > 'xyz'
C.0x56 > 56
D.(3,2) > ('a','b')

1 C:字符串也可以比较,字符串比大小是以首个字符来比较的,元组不能比大小
View Code
10、下列python语句正确的是(多选)
A.min = x if x < y else y
B.max = x> y ?x :y
C.if(x>y)print(x)
D.while True:pass

1 A,D :A其实是三元运算符,B是C语言里面的,C少了个冒号
View Code
11.若K为整形,下述while循环指向的次数是:
k = 1000
while k > 1
print k
k = k/2
A、9, B.10
C、11 C.100

1 A: 1000 500 250 125 62 31 15 7 3 1 2 #A,B都对:实际上从print k语句可以看到是python 2的版本pythonView Code
12、以下叙述正确的是:
A、continue语句的作用是结束整个循环的执行
B.只能在循环体内使用break语句
C.在循环体内使用break语句或continue语句的作用相同
D.从多层循环嵌套中退出时,只能使用goto语句

1 B,goto是C语言才有的
View Code
13、关于python中的复数,下列说法错误的是:
A、表示复数的语法是real+imagej
B、实部和虚部都是浮点数
C、虚部必须后缀j且j不区分大小写
D、方法conjugate返回复数的共轭复数

1 复数的实部和虚部是浮点数
View Code
14、下面的语句那个会无限循环下去:
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

1 B:其实无限循环就跟for循环无关了
View Code
15、下面的代码,哪些会输出1,2,3三个数字(多选,选错不得分):
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)

1 B、D
View Code
16、python如何定义一个函数:
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)

1 C:
View Code
二、填空题(10分)
1、以下函数需要在其中应用一个全局变量K,请填写语句:
def fun()
______
k = k + 1

1 def fun() 2 golbal k______ 3 k = k + 1View Code
2、L = range(100)
1)取第一到第三个元素_L[1:4]_____
2)取倒数第二个元素_L[-2:-3]_____或者_L[98:99]____
3)取后十个元素__L[90:100]_____
4)把L复制给L1用___L1 = L_______

1 1)取第一到第三个元素_list(L[0:3])_____ 2 2)取倒数第二个元素_listL[-2]_____或者_listL[98]____ 3 3)取后十个元素__listL[-10:]_____listL[90:] 4 4)把L复制给L1用___L1 = listL[:]_______ #浅copy 5 #range(100)是生成器,View Code
3、判断dict有没有某个key用的方法是_________

1 in:get不完全对,in 是最完整的View Code
4、获取list的元素个数,和向末尾追加元素的方法分别是________ ,________

1 4、获取list的元素个数,和向末尾追加元素的方法分别是__len(list)______ ,__liat.append()______View Code
5、以下的代码的输出将是什么:
def extendList(val,list=[]):
list.append(val)
return list
list1 = extendList(10)
list2 = extendList(123,[])
list3 = extendList('a')
print("list1 = %s"%list1)
print("list2 = %s"%list2)
print("list3 = %s"%list3)

1 list1 = [10] 2 list2 = [123] 3 list3 = ['a']自己答的

1 讲解: 2 list1 = [10, 'a'] 3 list2 = [123] 4 list3 = [10, 'a'] 5 list1和list3调用的时候,list=[]都是使用默认参数,即它们在使用的时候用的是同一个列表 6 list2是有传列表参数,所以他跟list1、list2不共用列表讲解的
6、下面程序输出结果是:
x = True
y = False
z = False
if x or y and x:
print "yes"
else:
print "no"

1 yes
View Code
三、简答题
1、如何判断一个变量是不是字符串

1 答:用type(a)是否为str类型判定 2 解答:type(变量)View Code
2、is 和 == 的区别

1 答:is是包含的意思,==是完全相同,is的作用范围比==大 2 解答:一个是比较内存地址,一个是比较值View Code
3、python里面如何实现tuple和list的转换

1 答:调用tuple(list)转为tuple,调用list(tuple)转换为list 2 解答:数据类型的强制转换View Code
4、list 和tuple有什么不同

1 答:list是可变量,不可哈希;tuple是不可变量,可哈希
View Code
5、如何得到列表list的交集和差集

1 解答:set(list)得到集合,list2 - list3 求差集
View Code
6、python中定义函数时如何书写可变参数和默认参数?

1 答:def func(*args,a = 2) 2 解答:args,默认参数这样的顺序View Code
7、*args 和**kwargs在什么情况下会使用到?请给出使用的示例

1 答:在装饰器中会使用 2 def func(f): 3 def inner(*args,**kwargs): 4 ret = f(*args,**kwargs) 5 return ret 6 return inner 7 解答:不确定有多少个参数时候,*args是接收所有按位置传参,**kwargs是接收关键字传参View Code
8、请描述unicode、utf-8、gbk等编码之间的关系

1 答:unicode可转换为utf-8,unicode可转换为gbk,utf-8不能直接转为gbk,utf-8转换为gbk得先转换为unicode,然后从unicode转为gbk 2 解答:unicode是万国码,占内存;gbk是国标,不兼容其它国家语言;View Code
9、如何使用python 删除一个文件

1 解答:import os 2 os.remove()View Code
10、def func(a,b,c= 0,*args,**kwargs):
pass
*args、**kwargs的作用是什么

1 答:*args的作用是传可变参数,**kwargs是传可变关键字参数 2 解答:*args是接收多个位置参数,**kwargs接收多个关键字参数View Code
四、写代码
1、d = {'a':1,"b":2,'c':3}请打印出key,value对

1 d = {'a':1,"b":2,'c':3} 2 print(list(d.items())) 3 print(d.keys(),d.values())自己答的

1 解答的: 2 一般用for循环来拿 3 for k in d: 4 print(k) 5 for v in d: 6 print(d[v])解答的
2、请写出一段python代码实现删除一个list里面的重复元素

1 list2 = [1,3,4,'a','b',2,3,4] 2 list3 = [] 3 list3 = list2 4 5 for i in list3: 6 count = 0 7 for j in list2: 8 if i == j: 9 count += 1 10 if count > 1: 11 list2.remove(j) 12 print(list2)自己答的

1 解答的:直接用转换为元组去重,但这种方式是无序的,所以不怎么可取 2 list2 = [1,3,4,'a','b',2,3,4] 3 a = set(list2) 4 print(a) 5 list2 = list(a) 6 print(list2)解答的

1 list2 = [1,3,4,'a','b',2,3,4] 2 list3 = [] 3 for i in list2: 4 if i not in list3: 5 list3.append(i) 6 list2 =list3 7 print(list2)最佳的
3、使用Python上机决定一下题目:
1)斐波那契数列1,2,3,5,8,13,21.34.55.89,144,133,277,410,687,1097,1784
根据这一的规律,编程求出400万以内最大的斐波那契数,并求出他是第几个斐波那契数。

1 sum = 3 2 a = 1 3 b = 2 4 count = 1 5 for i in range(40): 6 if sum == (a+b): 7 a = b 8 b = sum 9 sum = a + b 10 count +=1 11 if sum >4000000: 12 print(b) 13 print(count) 14 break自己答的
4、
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'}

1 a = list(dictb.keys()) 2 print(a) 3 for k in dicta: 4 for v in dictb: 5 if k == v: 6 dicta[k] = dicta[k] + dictb[v] 7 else: 8 dicta.update(dictb[v]) 9 print(dicta)自己答的
5、什么是装饰器,写一个装饰器,可以打印输出方法执行时间长度的信息
6、请写出log的实现(主要功能是打印函数名)
@log
def now():
print('2019-03-02')
>>>now()
输出:
call now()
2019-03-02
7、有一个数据结果如下所示,请编写一个函数从该结果数据中返回由指定的字段和对应的值组成的子
典。如果指定字段不存在,则跳过该字段:
data:{"time":"2016-08-05T13:13:05",
"some_id":"ID1234",
"grp1":{"fld1":1,"fld2":2},
"xxx2":{"fld3":0,"fld5":0.4},
"fld6":11,
"fld7":7,
"fld46":8
}
fields:由“|”连接的以“fld”开头的字符串,如:fld2|fld3|fld7|fld19
def select(data,fields):
#TODO:implementation
return result

更多精彩