文章目录
Python语法面试题(二)
16. 如何设定字符串的第1个字母是大写。
字符串函数title()
可以设定字符串第1个字母是大写。
17. 说明is
的用法。
可以用于比较两个对象是否相同,在此所谓相同并不只是内容相同,而是指对象变量指向相同的内存,对象可以是变量、字符串、列表、元组、字典。
18. 说明in
的用法。
可以用此判断一个对象是否属于另一个对象,然后传回布尔值。
19. 什么是列表打包(packing)?
在多重指定中,如果等号左边的变量较少,可以用**“变量”**方式,将多余的右边内容,用列表方式打包给的变量。
a,b,*c = 1,2,3,4,5
print(a,b,c) # 1 2 [3,4,5]
a,*b,c = 1,2,3,4,5
print(a,b,c) # 1 [2,3,4] 5
注1:变量内容打包时,不一定要在最右边,可以在任意位置。
注2:Python也可以使用zip()函数,针对多个列表的值进行打包,此时语法如下:zip(list1,list2,…)
list1 = ["a","b","c"]
list2 = [1,2,3]
for p in zip(list1,list2):
print(p)
"""
("a",1)
("b",2)
("c",3)
"""
20. 什么是元组(或列表)解包(unpacking)?
- 在多重指定中,等号左右两边也可以是容器,只要他们的结构相同即可。例如:有一个指定如下:
x,y = (1,2) # 元组解包
x,y = [1,2] # 列表解包
这称为元组解包(tuple unpacking)或列表解包(list unpacking),然后将元素内容设定给对应的变量。
[a,b,c]=(1,2,3)
print(a,b,c) # 1 2 3
上述并不是将“1,2,3”设定给列表内容,而是将两边都解包,所以可以得到a,b,c分别是1,2,3。
- 如果列表(或元组)的元素是列表(或元组),则可以使用for循环执行解包。
a = ["a","b"]
b = [1,2]
data = zip(a,b)
print(list(data)) #[('a', 1), ('b', 2)]
for c,p in data:
print(c,p)
"""
a 1
b 2
"""
21. 什么是可迭代对象(iterators/iterable object)。
可迭代对象是指可以遍历或迭代的对象。列表、元组、字典皆是可迭代对象。
22. 说明divmod(x,y)
的用法,它的回传值数据形态是什么?
divmod(x,y)
函数第一个参数x是被除数,第二个参数y是除数,回传值是商与余数,回传值是一个元组。
x,y = 9,5
v1,v2 = divmod(x,y)
print(v1,v2) # 1 4
23. 如何将B字典元素合并到A字典内。
使用A.update(B)
,由于字典的键是唯一的,所以如果有重复的键,B的键值对覆盖A的键值。
dict1 = {"a":1,"b":2,"c":3}
dict2 = {"c":30,"d":4}
dict1.update(dict2)
print(dict1) #{"a":1,"b":2,"c":30,"d":4}
24. 如何合并和删除字典?
可以使用update()
方法合并字典。
可以使用del
方法删除字典元素或整个字典。
del mydict # 删除字典mydict
del mydict["a"] # 删除mydict字典的data为key的元素
mydict.clear() # 删除字典所有元素
25. 列出所有被列为逻辑值False的情况。
布尔值False;整数0;浮点数0.0;空字符串’ ';空列表[ ];空元组( );空字典{ };空集合set( );None。
至于其他的皆会被视为True。
26. 说明any()
和all()
的区别。
any(x)
:x是可迭代对象,只要一个对象不为空、0或False,就回传True,否则回传False。
any(0) # False
any(1) # True
any([]) # False
any([0,1]) # True
all(x)
:x是可迭代对象,要所有对象不为空、0、False,None,才回传True,否则回传False。
all([1,2]) # True
all([1,0]) # False
all([]) # True
all(()) # True
27. 什么是pickling和unpickling?
pickle时Python的一种原生数据形态,pickle文件内部是以二进制格式存储数据,当数据以二进制方式存储时不方便阅读,但方便保存以及调用。可以使用dump()
以pickle文件存储,这个过程称为pickling。将pickle文件使用load()
复原文件原先的数据格式,这个过程称为unpickling。
28. 说明下面几类错误。
AttributeError:通常是指对象没有这个属性;
Exception:一般错误皆可使用;
FileNotFoundError:找不到Open()
开启的文件;
IOError:在输入或输出时发生错误;
IndexError:索引超出范围区间;
KeyError:在映射中没有这个键;
MemoryError:需求内存空间超出范围;
NameError:对象名称未宣告;
SystemError:直译器的系统错误;
TypeError:数据类型错误;
ValueError:传入无效参数;
ZeroDivisionError:除数为0。