Python面试重点(基础篇)
### 第一部分 必答题(每题2分)
1.
简述列举了解的编程语言及语言间的区别?
语言分为解释型语言和编译型语言,编译型语言主要的代表有c语言,解释型语言主要代表有python。
编译型语言一次编译永久执行,不支持跨平台。安全性好。
解释型语言每次执行都需要执行一遍源代码,安全性比较低,支持跨平台。运行效率低
2.
列举Python2和Python3的区别?
1) print不再是语句,而是函数,比如原来是 print 'abc' 现在是 print('abc')但是 python2.6+ 可以使用 from future import print_function 来实现相同功能>
2) 在Python 3中,没有旧式类,只有新式类,也就是说不用再像这样 class Foobar(object): pass 显式地子类化object但是最好还是加上. 主要区别在于 old-style 是 classtype 类型而 new-style 是 type类型>
3) 原来1/2(两个整数相除)结果是0,现在是0.5了python 2.2+ 以上都可以使用 from future import division 实现改特性, 同时注意 // 取代了之前的 / 运算>
5)
6) xrange重命名为range同时更改的还有一系列内置函数及方法, 都返回迭代器对象, 而不是列表或者 元组, 比如 filter, map, dict.items 等>
3.
看代码写结果
v1 = 1 or 2
v2 = 3 and 7 or 9 and 0
答:
1
7
4.
比较以下值有什么不同?
v1 = [1, 2, 3]
v2 = [(1), (2), (3)]
v3 = [(1,), (2,), (3,)]
v1和v2一样,v3是列表里面套元组
5.
用一行代码实现数值交换。
a = 1
b = 2
a,b=b,a
6.
Python中单引号、双引号、三引号的区别?
单引号和双引号都是表示字符串,单双引号嵌套时要交替着用,否则会混淆,并且只能引一行的内容。而三引号可以引多行
7.
is和 == 的区别?
is 是比较地址和内容
== 是比较内容
8.
python里如何实现tuple和list的转化?
list(tuple)
tuple(list)
9.
如何实现字符串
name = '老男孩' #的反转?
name = name[::-1]
print(name)
10.
两个set如何获取交集、并集、差集?
a=set('abc')
b=set('bcd')
c=a&b
d=a|b
e=a-b
print(c,d,e)
11.
那些情况下, y != x - (x - y)
会成立?
x,y 是集合
12.
Python中如何拷贝一个对象?
copy.copy(拷贝对象) 浅拷贝
copy.deepcopy(拷贝对象) 深拷贝
13.
简述
赋值、浅拷贝、深拷贝的区别?
赋值是改变变量的指向
浅拷贝是和赋值是一样的
深拷贝是完全的赋值一份,地址和之前的不一样了
14.
pass的作用?
一条空的语句,什么也不执行
15.
阅读代码写结果。
import copy
a = [1, 2, 4, 5, ['b', 'c']]
b = a
c = copy.copy(a)
d = copy.deepcopy(a)
a.append(5)
a[4].append('d')
print(b) # [1, 2, 4, 5, ['b', 'c','d'],5]
print(c) # [1, 2, 4, 5, ['b', 'c','d'],5]
print(a) # [1, 2, 4, 5, ['b', 'c','d'],5]
16.
用Python实现9 * 9
乘法表。
for i in range(1,10):
for j in range(1,i+1):
print(i*j)