1、代码中要修改不可变数据会出现什么问题? 抛出什么异常?
答:代码不会正常运行,抛出 TypeError 异常。
2、a=1,b=2,不用中间变量交换 a 和 b 的值?
方法一:
a = a + b
b = a - b
a = a - b
方法二:
a = a^b
b = b^a
a = a^b
方法三:
a,b = b,a
3、print 调用 Python 中底层的什么方法?
答:print 方法默认调用 sys.stdout.write 方法,即往控制台打印字符串;
print在打印时会自动加个换行符,以下两行等价:
sys.stdout.write('hello'+'\n')
print 'hello'
4、下面这段代码的输出结果将是什么?请解释?
class Parent(object):
x = 1
class Child1(Parent):
pass
class Child2(Parent):
pass
print(Parent.x, Child1.x, Child2.x)
Child1.x = 2
print(Parent.x, Child1.x, Child2.x)
Parent.x = 3
print(Parent.x, Child1.x, Child2.x)
输出结果为:
1 1 1 #继承自父类的类属性 x,所以都一样,指向同一块内存地址。
1 2 1 #更改 Child1,Child1 的 x 指向了新的内存地址。
3 2 3 #更改 Parent,Parent 的 x 指向了新的内存地址。
5、简述你对 input()函数的理解?
答:在 Python3 中,input()获取用户输入,不论用户输入的是什么,获取到的都是字符串类型的。在 Python2 中有 raw_input()和 input(), raw_input()和 Python3 中的 input()作用是一样的,input()输入的是什么数据类型的,获取到的就是什么数据类型的。
6、阅读下面的代码,写出 A0,A1 至 An 的最终值。
A0 = dict(zip(('a', 'b', 'c', 'd', 'e'), (1, 2, 3, 4, 5)))
A1 = range(10)
A2 = [i for i in A1 if i in A0]
A3 = [A0[s] for s in A0]
A4 = [i for i in A1 if i in A3]
A5 = {
i: i * i for i in A1}
A6 = [[i, i * i] for i in A1]
答:
A0 = {
'a': 1, 'b': 2, 'c': 3, 'd':