D、方法conjugate返回复数的共轭复数
答案:C
分析:
关于python中的复数:
1.表示复数的语法是real + image j
2.实部和虚部都是浮点数
3.虚部的后缀可以是 “j” 或者 “J”
4.复数的 conjugate 方法可以返回该复数的共轭复数。
下列哪种不是Python元组的定义方式?
A、(1)
B、(1, )
C、(1, 2)
D、(1, 2, (3, 4))
答案:A
分析:
Python 中的 tuple 结构为 “不可变序列”,用小括号表示。为了区别数学中表示优先级的小括号,当 tuple 中只含一个元素时,需要在元素后加上逗号
What gets printed?()
counter = 1
def doLotsOfStuff():
global counter
for i in (1, 2, 3):
counter += 1
doLotsOfStuff()
print counter
A、1
B、3
C、4
D、7
E、none of the above
答案:C
分析:
下面代码运行后,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’]]
答案:D
分析:
首先我们看看看b的情况,b实际上和a指向的是同一个值,就好比人的大名和小名,只是叫法不同,但还是同一个人
接下来再看看c的情况,c的情况和a.copy()的情况是一样的,都是我们所谓的浅拷贝(浅复制),浅拷贝只会拷贝父对象,不会拷贝子对象,通俗的说就是只会拷贝到第二层
若父对象发生变化,c不会变化,因为它已经复制的所有父对象,假如子对象发生变化则c会变,比如c[4]和a[4]实际都是一个变量list,他们都指向子对象,若子对象发生变化,他们必然都变化,比如变成["a","d"],那它们指向的值也就变成了a、d。
再看看d的情况,这就是我们所说的深复制,不管a进行什么操作,都不会改变d了,他们已经指向不同的值(这里是指在内存中存储的位置不同了)。
总结:
b=a,只是换了一个名字,a怎么变b就怎么变,
c是浅复制,只复制了a的部分值,仍然共用某些值,所以在对a的子对象进行操作时会改变c
d是深复制,完全复制了a的所有值,已经完全与a无关,对a的任何操作都不会影响d
下列哪种类型是Python的映射类型?
A、str
B、list
C、tuple
D、dict
答案:D
分析:
映射是一种关联式的容器类型,它存储了对象与对象之间的映射关系,字典是python里唯一的映射类型,它存储了键值对的关联,是由键到键值的映射关系。
What gets printed?()
nums = set([1,1,2,3,3,3,4])print(len(nums))
A、1
B、2
C、4
D、5
E、7
答案:C
分析:
set 类型的特性是会移除集合中重复的元素,因此变量 nums 实际上等于:nums= {1,2,3,4}
因此数据的长度为 4,故选C