错题1
下面代码运行后,a、b、c、d四个变量的值,描述错误的是?
import copy
a = [1, 2, 3, 4, [‘a’, ‘b’]]
b = a
c = copy.copy(a)
d = copy.deepcopy(a)
a.append(5)
a[4].append(‘c’)
A.a == [1,2, 3, 4, [‘a’, ‘b’, ‘c’], 5]
B.b == [1,2, 3, 4, [‘a’, ‘b’, ‘c’], 5]
C.c == [1,2, 3, 4, [‘a’, ‘b’, ‘c’]]
D.d == [1,2, 3, 4, [‘a’, ‘b’, ‘c’]]
我的答案: B
正确答案: D
题目解析:这题小新直接敲代码运行,有码有真相,注释里顺便分析题目了。
import copy
a = [1, 2, 3, 4, ['a', 'b']]
b = a # 此处是引用,除非直接给a重新赋值,否则a变则b变,b变则a变
c = copy.copy(a) # 浅复制,只会拷贝父对象, 不会拷贝父对象中的子对象,所以若a的子对象变则c 变,但是父对象变c不会变
d = copy.deepcopy(a) #深拷贝,完全拷贝,完全独立于原对象,即使a变也不变
a.append(5) # 改变父对象-在a列表末尾插入了一个元素5
a[4].append('c') #改变父对象中的 ['a', 'b']子对象—在['a','b']列表末尾插入了元素‘c’
print(a)
print(b)
print(c)
print(d)
真相:变量d进行了深拷贝,完全独立于原对象a,a后来发生的改变不会作用于d身上,所以d保留了a最初的值。
[1, 2, 3, 4, ['a', 'b', 'c'], 5]
[1, 2, 3, 4, ['a', 'b', 'c'], 5]
[1, 2, 3, 4, ['a', 'b', 'c']]
[1, 2, 3, 4, ['a', 'b']]
错题2
关于Python中的复数,下列说法错误的是()
A.表示复数的语法是real + image j
B.实部和虚部都是浮点数
C.虚部必须后缀j,且必须小写
D.方法conjugate返回复数的共轭复数
我的答案: B
正确答案: C
题目解析:这个题目考查Python复数的相关知识点。总结如下:
1、虚数不能单独存在,它们总是和一个实数一起构成一个复数
2、复数由实数部分和虚数部分构成
3、表示虚数的语法:real+imagej
4、实数部分和虚数部分都是浮点数
5、虚数部分必须有后缀j或J
6.方法conjugate,可以返回共轭复数。举个栗子看下哈:
a=3+4J
print(a.conjugate())
结果:
(3-4j)
错题3
下列代码运行结果是?
a = ‘a’
print a > ‘b’ or ‘c’
A.a
B.b
C.c
D.True
E.False
我的答案: E
正确答案: C
题目解析:题目中的代码显然是Python2的,我将其转换为Python3并进行运行,可以看到:
a = 'a'
print (a > 'b' or 'c')
结果:
c
比较运算符优先级大于逻辑运算符,所以应该先比较’a’和’b’。当 ‘a’ < ‘b’,即 ‘a’ > ‘b’ 为 Fasle 时(‘a’ 的 ASCII 码比 ‘b’ 小),返回值为 ‘c’,故答案选C。Python的逻辑运算符
小结
今天的题目比较基础,但是做的效果并不好,说明自己的知识掌握程度仍然不够,继续加油呀!
明天见哦!