python笔试题1
1.阅读下面的代码,写出A0,A1至An的最终值。
>>> A0 = dict(zip(('a','b','c','d','e'),(1,2,3,4,5)))
>>> A0
{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}
>>> A1 = range(10)
>>> A1
range(0, 10)
>>> A2 = [i for i in A1 if i in A0]
>>> A2
[]
>>> A3 = [A0[s] for s in A0]
>>> A3
[1, 2, 3, 4, 5]
>>> A4 = [i for i in A1 if i in A3]
>>> A4
[1, 2, 3, 4, 5]
>>> A5 = {i:i*i for i in A1}
>>> A5
{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81}
>>> A6 = [[i,i*i] for i in A1]
>>> A6
[[0, 0], [1, 1], [2, 4], [3, 9], [4, 16], [5, 25], [6, 36], [7, 49], [8, 64], [9, 81]]
>>>
2.以下代码的运行结果为:
def f(x,l=[]):
for i in range(x):
l.append(i*i)
print(l)
-----------------------------------------------------------
>>> f(2)
[0, 1]
>>> f(3,[3,2,1])
[3, 2, 1, 0, 1, 4]
>>> f(3)
[0, 1, 0, 1, 4]
3.*args 和 **kwargs的区别?
-
*args
1.不确定要往函数中传入多少个参数
2.想往函数中以列表和元组的形式传入参数 -
**kwargs
1.不知道要往函数中传入多少个关键字参数
2.想传入字典的值作为关键字参数时
4.is 和==的区别?
-
is:比较的是两个对象的id值是否相等,也就是比较俩对象是否为同一个实例对象。是否指向同一个内存地址
-
== : 比较两个对象的内容/值是否相等,默认会调用对象的eq()方法
5.Python内置的数据结构?
列表
元组
字典
集合
6.Python中变量的作用域?(变量查找顺序)
函数作用域的LEGB顺序
1.什么是LEGB?
L: local 函数内部作用域
E:enclosing 函数内部与内嵌函数之间
G:global 全局作用域
B: build-in 内置作用
python在函数里面的查找分为4种,称之为LEGB,也正是按照这是顺序来查找的
7.全字母判断(判断一个字符串中,那些字母未使用。)
def get_missing_letter(a):
s1 = set('abcdefghijklmnopqrstuvwxyz')
s2 = set(a.lower())
ret = ''.join(sorted(s1-s2))
return ret
print(get_missing_letter('abcdEZ'))
-------------------------------------
fghijklmnopqrstuvwxy