1、下面哪个是Python中的不变的数据结构? tuple A、set B、list C、tuple D、dict #可变数据类型:列表list[ ]、字典dict{ } #数据发生改变,但内存地址不变 #不可变数据类型:整型int、字符串str' '、元组tuple() #当该数据类型的对应变量的值发生了改变,那么它对应的内存地址也会改变;
2、以下程序输出为: 11 22 (33, 44, 55, 66, 77, 88, 99) def test(a,b,*args): print(a) print(b) print(args) test(11,22,33,44,55,66,77,88,99) # 11给a, 22给b,剩下的包装成元组给了不定长参数 *args # python参数传递里的不定长参数:加了*的参数以元组方式传入,加了**的参数会以字典方式传入
5、下面代码运行后,a、b、c、d四个变量的值,描述错误的是? ( 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’]] 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', 'b']子对象 # 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']]
6、以下程序输出为: 正在装饰 正在验证权限 def w1(): print('正在装饰') def inner(): print('正在验证权限') return inner() w1() # 因为return inner()后面有括号所以会执行函数,如果改为 def w1(): print("正在装饰") def inner(): print("正在验证权限") return inner w1() # 最后一行的括号去掉,那么结果就是“正在装饰” 如果外层函数返回的是一个函数名的话,运行结果应该是:正在装饰 如果外层函数返回的是函数调用的话,运行结果是:正在装饰 正在验证权限
7、假设可以不考虑计算机运行资源(如内存)的限制,以下 python3 代码的预期运行结果是:(B) import math def sieve(size): sieve= [True] * size sieve[0] = False sieve[1] = False for i in range(2, int(math.sqrt(size)) + 1): k= i * 2 while k < size: sieve[k] = False k += i return sum(1 for x in sieve if x) print(sieve(10000000000)) A、455052510 B、455052511 C、455052512 D、455052513 这是一个求质数个数的题不说了,简单做一个递归的优化,每次都用质数筛 #这个地方以100举例 import math def sieve(size): sieve= [True] * size sieve[0] = False sieve[1] = False # 这100个数除了0和1其余默认为True for i in range(2, int(math.sqrt(size)) + 1): # 从2开始一直到10 k= i * 2 while k < size: sieve[k] = False k += i # 4为首项,公差为2的数为False;6为首项公差为3的数,以此类推,直到20为首项公差为10的数 # 对sieve中每个元素进行遍历,如果x为真,则计算器加1 return sum(1 for x in sieve if x) # 统计True的个数 print(sieve(100))
8、what gets printed? Assuming python version 2.x( A ) print type(1/2) A、 <type 'int'> B、 <type 'number'> C、 <type 'float'> D、<type 'double'> E、<type 'tuple'> # Python2 中除法默认向下取整,因此 1/2 = 0,为整型。 # 而 Python3 中的除法为正常除法,会保留小数位,因此 1/2 = 0.5,为浮点型。
9、从运行层面上来看,从四个选项选出不同的一个。python JAVA Python objectC C# Python 只有它是动态语言 动态语言的定义:动态编程语言 是 高级程序设计语言 的一个类别,在计算机科学领域已被广泛应用。它是一类 在 运行时可以改变其结构的语言 :例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化。动态语言目前非常具有活力。众所周知的 ECMAScript ( JavaScript )便是一个动态语言,除此之外如 PHP 、 Ruby 、 Python 等也都属于动态语言,而 C 、 C++ 等语言则不属于动态语言
10、关于return说法正确的是( B D ) A、python函数中必须有return B、return可以返回多个值 C、return没有返回值时,函数自动返回Null D、执行到return时,程序将停止函数内return后面的语句 # return会跳出函数(遇到它,函数就结束) # break会跳出当前循环 # continue 跳出当前循环并执行下一次 # C. return没有返回值时,函数自动返回None,Python没有Null