GESP Python 5级 2023.09
近年来,线上授课变得普遍,很多有助于改善教学效果的设备也逐渐流⾏,其中包括⽐较常⽤的⼿写板,那 么它属于哪类设备?
输⼊
输出
控制
记录
以下关于Python语⾔的描述,错误的是
Python提供了常⽤的数据结构,并⽀持⾯向对象编程
Python是解释型语⾔
Python是⼀种⾼级程序设计语⾔
Python程序在运⾏前需要预先编译
下列Python代码执⾏后输出的是
lstA = [1,2,3]
lstB = [4,5,6,lstA]
del lstA
print(lstB)
[4, 5, 6, lstA]
[4, 5, 6, 1, 2, 3]
[4, 5, 6, [1, 2, 3]]
执⾏将报错,因为 lstA 已经被删除
有关下⾯Python代码说法错误的是
# sumA()和sumB()用于求1~N之和
def sumA(N):
ret = 0
for i in range(1, N = 1):
ret += i
return ret
def sumB(N):
if N ==1:
return 1
else:
return N + sumB(N - 1)
N = int(input("请输入大于等于1的正整数:"))
print(sumA(N),sumB(N))
sumA( )用循环方式求1N之和,sumB( )用递归方式求1N之和
默认情况下,倒数第二行被执行时如果输入较小的正整数如100,即倒数第一行能正确被执行,则能实现求1到N之和
默认情况下,倒数第二行被执行时如果输入较大的正整数如10000,倒数第一行被能正确被执行,能实现求1到N之和
默认情况下,⼀般说来, sumA() 和效率⾼于 sumB()
下⾯Python代码以递归⽅式实现字符串反序,横线处应填上代码是
# 字符串反序
def sReverse(sIn):
if len(sIn) <= 1:
return sIn
else:
return __________
print(sReverse("Hello"))
sReverse(sIn[1:]) + sIn[:1]
sReverse(sIn[:1]) + sIn[1:]
sIn[:1] + sReverse(sIn[1:])
sIn[1:] + sReverse(sIn[:1])
印度古⽼传说:创世时有三根⾦刚柱,其中⼀柱从下往上按照⼤⼩顺序摞着 ⽚黄⾦圆盘,当圆盘逐⼀从⼀ 柱借助另外⼀柱全部移动到另外⼀柱时,宇宙毁灭。移动规则:在⼩圆盘上不能放⼤圆盘,在三根柱⼦之间⼀次只 能移动⼀个圆盘。下⾯的Python代码以递归⽅式实现汉诺塔,横线处应填⼊代码是
# 递归实现汉诺塔,将N个圆盘从A通过B移动C
# 圆盘从底到顶,半径必须从大到小
def Hanoi(A,B,C,N):
if N =1:
print(A,"->",C)
else:
Hanoi(A,C,B,N-1)
print(A,"->",C)
__________________
Hanoi("甲","乙","丙",3)
Hanoi(B, C, A, N-2)
Hanoi(B, A, C, N-1)
Hanoi(A, B, C, N-2)
Hanoi(C, B, A, N-1)
根据下⾯Python代码的注释,横线处应填⼊
isOdd = lambda N:N % 2 == 1
lstA = list(range(1,100))
lstA.sort(key = ____) # lstA成员偶数在前,奇数在后
lstB = [x for x in lstA if _______]
# lstB成员全为奇数
print(lstA,lstB)
isOdd isOdd(x)
isOdd(x) isOdd
isOdd isOdd
isOdd(x) isOdd(x)
关下⾯Python代码正确的是
def isEven(N):
return N%2 == 0
def checkNum(Fx,N):
return Fx(N)
print(checkNum(isEven,10))
checkNum( ) 函数定义错误
最后⼀⾏代码将 isEven 作为 checkNum( ) 参数将导致错误
最后⼀⾏代码执⾏后将输出 True
触发异常
有关下⾯Python代码正确的是
isOdd = lambda N: N % 2 == 1
def Add(N,M):
return N+M
def checkNum(Fx):
return Fx
print(checkNum(isOdd)(10))
print(checkNum(Add)(10,20))
checkNum( ) 函数定义错误
倒数第 ⾏代码将 isOdd 作为 checkNum( ) 参数将导致错误
最后⼀⾏代码将 Add 作为 checkNum( ) 参数将导致错误
倒数两⾏代码执⾏后都将没有错误
下面代码执行后的输出是
def jumpFloor(N):
print(N, end = "#")
if N == 1 or N == 2:
return N
else:
return jumpFloor(N-1) + jumpFloor(N-2)
print(jumpFloor(4))
4#3#2#2#4
4#3#2#2#1#5
4#3#2#1#2#4
4#3#2#1#2#5
