4、下列哪个语句在Python中是非法的?
A、 x = y = z =1
B、 x =(y = z +1)
C、 x, y = y, x
D、 x += y
# y = z + 1 的结果没有返回值,就无法赋值到 x
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']]
7、假设可以不考虑计算机运行资源(如内存)的限制,以下 python3 代码的预期运行结果是:(B)
import math
defsieve(size):
sieve=[True]* size
sieve[0]=False
sieve[1]=Falsefor i inrange(2,int(math.sqrt(size))+1):
k= i *2while k < size:
sieve[k]=False
k += i
returnsum(1for x in sieve if x)print(sieve(10000000000))
A、455052510
B、455052511
C、455052512
D、455052513
这是一个求质数个数的题不说了,简单做一个递归的优化,每次都用质数筛
#这个地方以100举例import math
defsieve(size):
sieve=[True]* size
sieve[0]=False
sieve[1]=False# 这100个数除了0和1其余默认为Truefor i inrange(2,int(math.sqrt(size))+1):# 从2开始一直到10
k= i *2while k < size:
sieve[k]=False
k += i # 4为首项,公差为2的数为False;6为首项公差为3的数,以此类推,直到20为首项公差为10的数# 对sieve中每个元素进行遍历,如果x为真,则计算器加1returnsum(1for x in sieve if x)# 统计True的个数print(sieve(100))
10、关于return说法正确的是( B D )
A、python函数中必须有return
B、return可以返回多个值
C、return没有返回值时,函数自动返回Null
D、执行到return时,程序将停止函数内return后面的语句
# return会跳出函数(遇到它,函数就结束)# break会跳出当前循环# continue 跳出当前循环并执行下一次# C. return没有返回值时,函数自动返回None,Python没有Null