@SuHongjun
2021-10-17T13:52:58.000000Z
字数 4759
阅读 835
Python
链接:https://www.zybuluo.com/SuHongjun/note/1826301
Python语言中用来定义函数的关键字是:
A. return
B. def
C. function
D. define
正确答案: B.
关于形参和实参的描述,以下选项中正确的是
A. 参数列表中给出要传入函数内部的参数,这类参数称为形式参数,简称形参
B. 函数调用时,实参默认采用按照位置顺序的方式传递给函数,Python也提供了按照形参名称输入实参的方式
C. 程序在调用时,将形参复制给函数的实参
D. 函数定义中参数列表里面的参数是实际参数,简称实参
正确答案: B.
哪个选项对于函数的定义是错误的?
A. def vfunc(a,b):
B. def vfunc(a,*b):
C. def vfunc(*a,b):
D. def vfunc(a,b=2):
正确答案:C
def vfunc(*a,b)是错误的定义:*a表示可变参数,可变参数只能放在函数参数的最后
以下关于lambda函数说法错误的是:
A. 仅适用于简单单行函数
B. 函数中可以使用赋值语句块
C. 必须使用lambda保留字定义
D. 匿名函数,定义后的结果是函数名称
正确答案:B
lambda函数内部只能用表达式,不能用带赋值的语句块
关于Python的全局变量和局部变量,以下选项中描述错误的是
A. 局部变量指在函数内部使用的变量,当函数退出时,变量依然存在,下次函数调用可以继续使用
B. 使用global保留字声明简单数据类型变量后,该变量作为全局变量使用
C. 简单数据类型变量无论是否与全局变量重名,仅在函数内部创建和使用,函数退出后变量被释放
D. 全局变量指在函数之外定义的变量,一般没有缩进,在程序执行全过程有效
正确答案: A.
以下程序的执行结果是:
def f1(a):
a += 10
def f2():
nonlocal a
a *= 2
print(a)
f2()
f1(10)
A. 报错
B. 40
C. 10
D. 20
正确答案: B.
下列代码中,get_avg是否是闭包:
def get_avg():
scores = 0
count = 0
def inner_count_avg(val): # 内部函数,用于计算平均值
nonlocal count, scores
scores += val # 使用外部函数的临时变量
count += 1
return scores / count # 返回计算出的平均值
return inner_count_avg # 外部函数返回内部函数引用
avg = get_avg()
print(avg(10))
print(avg(18))
A. 是
B. 不是
正确答案: A.
关于高阶函数,下述正确的说法是:
A. 高阶函数是指嵌套定义的函数
B. 一个函数可以接收另一个函数作为参数,这种函数就称为高阶函数
C. 高阶函数是指闭包
D. 高阶函数是指参数为关键字参数的函数
正确答案: B
以下程序的执行结果是:
a=[3*x for x in [2, 4, 6] if x > 3]
print(a)
A. [6, 12, 18]
B. [18]
C. [12, 18]
D. [4, 6]
正确答案: C
以下程序的执行结果是:
d= {i: i**2 for i in range(2,5)}
print(d)
A. [2, 3, 4]
B. {2: 4, 3: 9, 4: 16}
C. {1: 2, 2: 3, 3: 4}
D. B. {2: 4, 3: 9, 4: 16, 5:25}
正确答案: B
对于生成器函数,每次调用next()的时候,遇到哪一个关键字返回:
A. return
B. yield
C. break
D. exit
正确答案: B
A. 对
B. 错
答案:错
A. 对
B. 错
答案:对
A. 对
B. 错
答案:对
A. 列表
B. 字符串
C. 整数
D. 浮点数
正确答案:A
全局列表变量可以直接在函数中使用。
def func(a,b):
c = a**2 + b
b = a
return c
a = 10
b = 100
c = func(a,b) + a
print(c)
A. 执行该函数后,变量a的值为10
B. 执行该函数后,变量b的值为100
C. 执行该函数后,变量c的值为200
D. 该函数名称为func
正确答案:C
a,b为全局变量,请在IDLE中执行代码观察结果。
A. 降低编程复杂度
B. 提高代码执行速度
C. 增强代码可读性
D. 复用代码
正确答案 B
A. 高耦合度的特点是复用较为困难
B. 模块间关系尽可能简单,模块之间耦合度低
C. 应尽可能合理划分功能块,功能块内部耦合度低
D. 应尽可能合理划分功能块,功能块内部耦合度高
正确答案:C
模块内高耦合,模块间低耦合
A. 函数通过函数名来调用
B. 函数可以看做是一段具有名字的子程序
C. 函数是一段具有特定功能的、可重用的语句组
D. 对函数的使用必须了解其内部实现原理
正确答案:D
调用函数不需要知道函数内部实现原理,只需要知道调用方法(即接口)即可。
MA = lambda x,y : (x > y) * x + (x < y) * y
MI = lambda x,y : (x > y) * y + (x < y) * x
a = 10
b = 20
print(MA(a,b),MI(a,b))
A. 10 20
B. 20 20
C. 10 10
D. 20 10
正确答案:D
def f(a,b):
a = 4
return a+b
def main()
a = 5
b = 6
print(f(a,b),a+b)
main()
A. 10 11
B. 10 10
C. 11 10
D. 11 11
正确答案:A
这里没有全局变量,都是函数局部变量的运算。
题目要求
lst = [1,2,3,4,5]
翻转后
lst = [5,4,3,2,1]
思路分析
如果是用列表自带的功能,翻转列表是非常容易的事情
lst = lst[::-1]
现在,需要你自己来实现翻转过程,思路很简单,从头开始遍历列表,但只遍历到一半,左右两边对位交换数据即可
示例代码:
lst = [1, 2, 3, 4, 5, 6, 7, 8, 9]
length = len(lst)
for i in range(length//2):
tmp = lst[i]
lst[i] = lst[length - 1 - i]
lst[length - 1 - i] = tmp
print(lst)
题目要求
完全平方数,就是可以表示为某个整数的平方的数,例如9,是3的平方,16是4的平方,9和16都是完全平方数,请打印10000以内的完全平方数
思路分析
两个思路:一个思路是从1到10000进行遍历,对每一个数值进行判断,判断其是否为某个整数的平方。
第二个思路,从1到10000进行遍历,计算每一个数值的平方,如果这个平方小于10000,那么这个数值的平方就是完全平方数。
显然,第二个方法更容易一些,毕竟开根号这种事情,不能保证开出来的一定是整数。
示例代码
i = 1
value = 1
while value < 10000:
print(i, value)
i += 1
value = i**2
题目要求
在屏幕上输出九九乘法表
1*1 = 1
1*2 = 2 2*2 = 4
1*3 = 3 2*3 = 6 3*3 = 9
1*4 = 4 2*4 = 8 3*4 = 12 4*4 = 16
1*5 = 5 2*5 = 10 3*5 = 15 4*5 = 20 5*5 = 25
1*6 = 6 2*6 = 12 3*6 = 18 4*6 = 24 5*6 = 30 6*6 = 36
1*7 = 7 2*7 = 14 3*7 = 21 4*7 = 28 5*7 = 35 6*7 = 42 7*7 = 49
1*8 = 8 2*8 = 16 3*8 = 24 4*8 = 32 5*8 = 40 6*8 = 48 7*8 = 56 8*8 = 64
1*9 = 9 2*9 = 18 3*9 = 27 4*9 = 36 5*9 = 45 6*9 = 54 7*9 = 63 8*9 = 72 9*
思路分析
题目乍看起来挺难的,但其实非常简单,前提是你知道如何分析。
九九乘法表一共有9行,我们先考虑如何输出一行,一行解决了,使用一个for循环,就可以把所有行都输出了,定义函数print_line(line_number),该函数输出第line_number行。
当line_number等于9的时候,研究一下如何输出第9行。第9行有9个式子,从1到9分别乘以9,看见没,这不就是一个for循环么,使用一个for循环,让变量i从1变化到9,每次都与9相乘,并将结果组装成一个i*9 = xx 的式子,把所有的式子连接在一起,就是第9行的内容
解决了指定行的输出后,只需要一个简单的for循环,从1到9,分别去调用这个函数不就将整个乘法表打印出来了么?
示例代码:
def print_line(line_number):
lst = []
for i in range(1, line_number+1):
part = "{index}*{number} = {res}".format(index=i, number=line_number, res=i*line_number)
lst.append(part)
print(" ".join(lst))
def print_table():
for i in range(1, 10):
print_line(i)
print_table()