下面哪个是Python中的不变的数据结构?
正确答案: C
set
list
tuple
dict
- 可变:list, dict,set
- 不可变:string int float tuple boolen
帮助记忆的方法:不可变的看作是个体, 可变是一个容器
关于Python内存管理,下列说法错误的是
正确答案: B
变量不必事先声明
变量无须先创建和赋值而直接使用
变量无须指定类型
可以使用del释放资源
python中变量可以不事先声明、不指定类型,会自动根据赋值语句来决定类型
同时,使用前必须赋值,在赋值的同时变量也就创建了
Python调用( )函数可实现对文件内容的读取
正确答案: A
read()
readline()
readlines()
readclose()
read()读整个文件
readline()读一行
readlines()读所有行到list
下列Python语句正确的是
正确答案: D
min = x if x < y = y
max = x > y ? x : y
if (x > y) print x
while True : pass
A:三元运算符的使用
a if condition else b
min = x if x < y else y
B: python中无此用法
C:缺少冒号
if (x > y) : print x
关于Python中的复数,下列说法错误的是()
正确答案: C
表示复数的语法是real + image j
实部和虚部都是浮点数
虚部必须后缀j,且必须小写
方法conjugate返回复数的共轭复数
虚部的后缀可以是’j’也可以是’J’
下面代码运行后,a、b、c、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[4].append('c')
a = [1, 2, 3, 4, [‘a’, ‘b’, ‘c’], 5]
b = [1, 2, 3, 4, [‘a’, ‘b’, ‘c’], 5]
c = [1, 2, 3, 4, [‘a’, ‘b’, ‘c’]]
d = [1, 2, 3, 4, [‘a’, ‘b’]]
b=a,只是换了一个名字,a怎么变b就怎么变,
c是浅复制,只复制了a的部分值,仍然共用某些值,所以在对a的子对象进行操作时会改变c
d是深复制,完全复制了a的所有值,已经完全与a无关,对a的任何操作都不会影响d
What gets printed?
kvps = {
'1' : 1, '2' : 2 }
theCopy = kvps.copy()
kvps['1'] = 5
sum = kvps['1'] + theCopy['1']
print sum
正确答案:6
浅拷贝,kvps[‘1’] = 5改变父对象的值,theCopy父对象不会变
下列表达式的值为True的是
正确答案: C
5+4j > 2-3j #不支持复数比较大小
3>2>2
(3,2)< (‘a’,‘b’)
’abc’ > ‘xyz’
C: tuple 的比较是从两者的第一个元素的 ASCII 码开始,直至两个元素不相等为止,若前面元素都相等,则元素个数多的 tuple 较大。
D: 字符串的比较与 tuple 类似,也是从第一个字符开始比较 ASCII 码,直到两个字符不相等为止。
字母与数字的ASCII 码大小范围是 “a-z” > “A-Z” > “0-9”,D选项中 ‘a’ < ‘x’
已知print_func.py的代码如下:
print('Hello World!')
print('__name__value: ', __name__)
def main():
print('This message is from main function')
if __name__ =='__main__':
main()
print_module.py的代码如下:
import print_func
print("Done!")
运行print_module.py程序,结果是:
Hello World! __name__ value: print_func Done!
Python中函数是对象,描述正确的是?
正确答案: A B C D
函数可以赋值给一个变量
函数可以作为元素添加到集合对象中
函数可以作为参数值传递给其它函数
函数可以当做函数的返回值
在 Python 中万物皆为对象,函数也不例外
有如下函数定义,执行结果正确的是?
def dec(f):
n = 3
def wrapper(*args,**kw):
return f(*args,**kw) * n
return wrapper
@dec
def foo(n):
return n * 2
正确答案: A
foo(2) == 12
foo(3) == 12
foo(2) == 6
foo(3) == 6
在Python2中,下列哪种函式参数定义不合法?
正确答案: C
def myfunc(*args):
def myfunc(arg1=1):
def myfunc(*args, a=1):
def myfunc(a=1, **args):
答案解析
当args与位置参数和默认参数混用的情况下:(注意三者的顺序)
- 示例一、(三者顺序是:位置参数、默认参数、*args)
def foo(x,y=1,*args):
pass
foo (1,2,3,4,5) // 其中的x为1,y=1的值被2替换,3,4,5都给args,即args=(3,4,5)
- 示例二、(三者顺序是:位置参数、*args、默认参数)
def foo(x,*args,y=1):