1、关于递归函数的描述,以下选项中正确的是

A.包含一个循环结构

B.函数比较复杂

C.函数内部包含对本函数的再次调用

D.函数名称作为返回值

答案:D

答案解析:递归函数是指函数内部包含对本函数的再次调用。

2、关于递归函数基例的说明,以下选项中错误的是

A.递归函数必须有基例

B.递归函数的基例不再进行递归

C.每个递归函数都只能有一个基例

D.递归函数的基例决定递归的深度

答案:C

答案解析:每个递归函数至少存在一个基例

3、以下选项中,不属于函数的作用的是

A.提高代码执行速度

B.复用代码

C.增强代码可读性

D.降低编程复杂度

答案:C

答案解析:函数的作用是复用代码、增强代码可读性、降低编程复杂度,而并不能提高代码的执行速度。

4、假设函数中不包括global保留字,对于改变参数值的方法,以下选项中错误的是

A.参数是列表类型时,改变原参数的值

B.参数是整数类型时,不改变原参数的值

C.参数是组合类型(可变对象)时,改变原参数的值

D.参数的值是否改变与函数中对象的操作有关,与参数类型无关

答案:D

答案解析:python里有可变对象和不可变对象之分。只有传入的是不可变对象时,值才不发生改变,若是可变对象,值的传入需要注意。不可变对象:Number ,String ,Tuple,bool。可变对象: List , Set , Dictionary是可以改变内部的元素 。

5、在python中,关于函数的描述,以下选项中正确的是

A.一个函数中只允许有一条return语句

B.Python中,def和return是函数必须使用的保留字

C. Python函数定义中没有对参数指定类型,这说明,参数在函数中可以当作任意类型使用

D. 函数eval()可以用于数值表达式求值,例如eval("2*3+1’)

答案:D

答案解析:函数可以不使用return语句或多条return语句,因此A,B不正确;Python函数定义中没有对参数指定类型,函数中应根据实参的类型使用,C不正确。

6、给出如下代码

def func(a,b):

c = a **2 + b

b =a

return c

a =10

b =100

c = func(a,b)+a

以下选项中描述错误的是

A.执行该函数后,变量c的值为200

B.该函数名称为func

C.执行该函数后,变量b的值为100

D.执行该函数后,变量a的值为10

答案:A

答案解析:执行该函数后,变量c的值为210

7、在Python中,关于全局变量和局部变量,以下选项中描述不正确的是

A.一个程序中的变量包含两类:全局变量和局部变量

B.全局变量一般没有缩进

C.全局变量在程序执行的全过程有效

D.全局变量不能和局部变量重名

答案:D

答案解析:全局变量可以和局部变量重名,全局变量指的是在函数之外定义的变量,在程序执行全过程有效。全局变量在函数内部使用时,需要提前使用保留字global声明。局部变量指在函数内部定义的变量,仅在函数内部有效,当函数退出时,变量将不再存在。例如:

n =2

def multiply(x, y =10):

n =x*y #局部变量n,和第一行代码n不同。

return n #返回的n也是局部变量n

s =multiply(99,2)

print(s)

print(n)

全局变量可以和局部变量重名,因此D错误

8、关于面向对象和面向过程编程描述,以下选项中正确的是

A.面向对象编程比面向过程编程更为高级

B.面向对象和面向过程是编程语言的分类依据

C.模块化设计就是面向对象的设计

D.所有面向对象编程能实现的功能采用面向过程同样能完成

答案:D

答案解析:面向对象编程能实现的功能均可以采用面向过程同样能完成

9、以下选项中,对于递归程序的描述错误的是

A.书写简单

B.执行效率高

C.一定要有基例

D.递归程序都可以有非递归编写方法

答案:B

答案解析:递归程序的执行效率比较低

10、下面代码的输出结果是

f = lambda x,y:y+x

f(10,10)

A.10

B.20

C.10,10

D.100

答案:B

答案解析:lambda表达式相当于:

def fun(x, y):

return x + y

print(fun(10, 10))

11、关于形参和实参的描述,以下选项中正确的是

A.函数定义中参数列表里面的参数是实际参数,简称实参

B.参数列表中给出要传入函数内部的参数,这类参数称为形式参数,简称形参

C.程序在调用时,将实参复制给函数的形参

D.程序在调用时,将形参复制给函数的实参

答案:C

答案解析:函数定义中参数列表里面的参数是形参,参数列表中给出要传入函数内部的参数,这类参数称为实参;程序在调用时,将实参复制给函数的形参

12、关于lambda函数,以下选项中描述错误的是

A.lambda函数也称为匿名函数

B.lambda函数将函数名作为函数结果返回

C.定义了一种特殊的函数

D.lambda不是Python的保留字

答案:D

答案解析:lambda是Python的保留字

13、以下选项中,对于函数的定义错误的是

A.def vfunc(a, b = 2):

B.def vfunc(a, b):

C. def vfunc(a, b):

D. def vfunc(a, b):

答案:D

答案解析:def vfunc(* a, b):中的*(可选参数)应该放在后面,因此D错误

14、关于函数的参数,以下选项中描述错误的是

A.在定义函数时,如果有些参数存在默认值,可以在定义函数时直接为这些参数指定默认值

B.在定义函数时,可以设计可变数量参数,通过在参数前增加星号(*)实现

C. 可选参数可以定义在非可选参数的前面

D. 一个元组可以传递给带有星号的可变参数

答案:D

答案解析:可选参数不可以定义在非可选参数的前面

15、关于return语句,以下选项中描述正确的是

A.函数中最多只有一个return语句

B.函数必须有一个return语句

C.return只能返回一个值

D.函数可以没有return语句

答案:D

答案解析:函数return的个数没有限制,可以没有return语句

16、关于函数,以下选项中描述错误的是

A.函数是一段具有特定功能的、可重用的语句组

B.函数能完成特定的功能,对函数的使用不需要了解函数内部实现原理,只要了解函数的输入输出方式即可

C.使用函数的主要目的是降低编程难度和代码重用

D.Python使用del保留字定义一个函数

答案:D

答案解析:Python使用def保留字定义一个函数

17、关于Python的全局变量和局部变量,以下选项中描述错误的是

A.全局变量指在函数之外定义的变量,一般没有缩进,在程序执行全过程有效

B.局部变量指在函数内部使用的变量,当函数退出时,变量依然存在,下次函数调用可以继续使用

C.使用global保留字声明简单数据类型变量后,该变量作为全局变量使用

D.简单数据类型变量无论是否与全局变量重名,仅在函数内部创建和使用,函数退出后变量被释放

答案:D

答案解析:局部变量指在函数内部定义的变量,仅在函数内部有效,当函数退出时,变量将不再存在。

18、关于Python中的lambda函数,以下选项中描述错误的是

A.lambda用于定义简单的、能够一行内表示的函数

B.可以使用lambda函数定义列表的排序原则

C.f = lambda x,y:x+y执行后,f的类型为数字类型

D.lambda函数将函数名作为函数结果返回

答案:D

答案解析:C选项中,f的类型依参数来确定

19、下面代码实现的功能描述为

def fact(n):

if n == 0:

return 1

else :

return n * fact(n-1)

num = eval(input('请输入一个整数:'))

print(fact(abs(int(num))))

A.接受用户输入的整数N,输出N的阶乘值

B.接受用户输入的整数N,判断N是否是素数并输出结论

C.接受用户输入的整数N,判断N是否是整数并输出结论

D.接受用户输入的整数N,判断N是否是水仙花数

答案:D

答案解析:这是典型的递归函数,在return语句中调用函数本身。功能为输出N的阶乘值

20、给出如下代码

def fact(n):

s = 1

for i in range(1,n+1):

s *= i

return s

以下选项中描述错误的是

A.代码中n是可选参数

B.fact(n)函数功能为求n的阶乘

C.s是局部变量

D.range()函数是Python内置函数

答案:A

答案解析:代码中n不是可选参数,可选参数有*或**

21、给出如下代码

ls = ['car','truck']

def funC(a):

ls.append(a)

return

funC('bus')

print(ls)

以下选项中描述错误的是

A.ls.append(a)代码中的ls是全局变量

B.执行代码输出结果为["car’,’truck’]

C.ls.append(a)代码中的ls是列表类型变量

D.funC(a)中a为非可选参数

答案:B

答案解析:执行代码输出结果为["car’,’truck’,'bus']

22、给出如下代码

ls = ['car','truck']

def funC(a):

ls = []

ls.append(a)

return

funC('bus')

print(ls)

以下选项中描述错误的是

A.代码函数定义中,ls.append(a)中的ls是局部变量

B.执行代码输出的结果为['car', 'truck']

C.ls.append(a)代码中的ls是列表类型

D.执行代码输出结果为['car', 'truck', ’bus’]

答案:D

答案解析:funC函数内部的ls是局部变量,与全局变量不同,在函数调用结束后,局部变量就会消失。最终打印输出的ls是全局变量。

23、给出如下代码

import turtle

def drawLine(draw):

turtle.pendown() if draw else turtle.penup()

turtle.fd(50)

turtle.right(90)

drawLine(True)

drawLine(True)

drawLine(True)

drawLine(True)

以下选项中描述错误的是

A.运行代码,在Python Turtle Graphic中,绘制一个正方形

B.代码def drawLine(draw)中的draw可取值True或者False

C.代码drawLine(True)中True替换为-1,运行代码结果不变

D.代码drawLine(True)中True替换为0,运行代码结果不变

答案:D

答案解析:if else简写形式例:

a, b, c = 1, 2, 3

if a > b:

c = a

else:

c = b

可简写为:

a, b, c = 1, 2, 3

c = a if a > b else b

参数如果需要布尔值,而输入的是数值,那么只需要该数值为非0的数,对应为True,如果输入的数值为0,则代表False,因此D不正确

24、给出如下代码

import turtle

def drawLine(draw):

turtle.pendown() if draw else turtle.penup()

turtle.fd(50)

turtle.right(90)

drawLine(True)

drawLine(0)

drawLine(True)

drawLine(True)

turtle.left(90)

drawLine(0)

drawLine(True)

drawLine(True)

以下选项中描述错误的是

A.运行代码,在Python Turtle Graphic中,绘制一个数码管数字2

B.代码drawLine(True)中True替换为0,运行代码结果不变

C.代码drawLine(True)中True替换为-1,运行代码结果不变

D.代码def drawLine(draw)中的draw可取值0、1、-1等

答案:B

答案解析:参数如果需要布尔值,而输入的是数值,那么只需要该数值为非0的数,对应为True,如果输入的数值为0,则代表False。

25、下面代码的运行结果是

def func(num):

num += 1

a = 10

func(a)

print(a)

A.10

B.11

C.出错

D.int

答案:B

答案解析:函数在传递参数时,指将实参复制给形参,并未对实参本身发生改变。

26、下面代码的运行结果是

def func(a, b):

return a >> b

s = func(5, 2)

print(s)

A.20

B.6

C.1

D.12

答案:C

答案解析:a>>b代表将a转为二进制,然后向右移动b个位,(<<表示向左,>>表示向右)。a = 5,二进制为101;b =2,也就是将101向右移动2位,变为1。

27、下面代码的运行结果

def func(a, b):

a *= b

return a

s = func(5, 2)

print(s)

A.20B.10C.1D.12

答案:B

28、下面代码的运行结果是

def f2(a):

if a > 33:

return True

li = [11, 22, 33, 44, 55]

res = filter(f2, li)

print(list(res))

A.[44,55]

B.[33,44,55]

C.[22,33,44]

D.[11,33,55]

答案:A

答案解析:filter()函数是 Python 内置的另一个有用的高阶函数,filter()函数接收一个函数 f 和一个列表,在本题中这个函数 f2 的作用是对每个元素进行判断是否大于33,如果大于则返回 True否则 False,filter()根据判断结果自动过滤掉不符合条件的元素,也就是将返回为True的元素组成的新list,因此本题选择A。注意,res是对象类型。

python使用del保留字定义一个函数-函数和代码复用 --Python相关推荐

  1. python使用del保留字定义一个函数-Python使用什么保留字定义一个函数。

    [单选题]Where was the First Continental Congress held? [单选题]对于集合S和T,下列不属于集合类型的操作是() [判断题]UPS系统的静态开关用于保护 ...

  2. python使用del保留字定义一个函数-python中自定义函数的保留字是

    基本使用(推荐学习:Python视频教程)def function_name(parameters): expressions Python使用def开始函数定义,紧接着是函数名,括号内部为函数的参数 ...

  3. python turtle画气球-如何用python的装饰器定义一个像C++一样的强

    如何用python的装饰器定义一个像C++一样的强 Python作为一个动态的脚本语言,其函数在定义时是不需要指出参数的类型,也不需要指出函数是否有返回值.使用python的装饰器来定义一个像C++那 ...

  4. python求三个整数最大值_python 练习题:定义一个getMax()函数,返回三个数(从键盘输入的整数)中的最大值。...

    此题比较简单,不做过多说明. 值得注意的是如何用一行代码让用户一次性输入为多个变量赋值 Python # 定义一个getMax()函数,返回三个数(从键盘输入的整数)中的最大值. def getMax ...

  5. python定义一个匿名函数使用什么关键字_python3----函数、匿名函数

    本节将学习如何用Python定义函数,调用函数,以及学习匿名函数的使用 1.定义函数 Python中定义函数用关键字def,如下例所示,func为函数名 def func(): print( &quo ...

  6. 定义一个 k 函数,这样写正确吗?

    我这里有一个程序的一部分,大家能帮我看一下这段程序正确吗?定义一个k函数,这样写正确吗? double CF2DH_FieldCalc_316L::uf_k(long a_m, long a_l,lo ...

  7. matlab创建一个函数,matlab定义一个新函数

    本文收集整理关于matlab定义一个新函数的相关议题,使用内容导航快速到达. 内容导航: Q1:matlab怎么建立自定义函数 自定义函数的格式: function 函数名(参数) 函数表达式 end ...

  8. 如何用matlab编写分段函数_请教各位怎样用matlab定义一个分段函数MATLAB分段函数...

    请教各位怎样用matlab定义一个分段函数 MATLAB分段函数 www.zhiqu.org     时间: 2020-12-08 matlab提供了了两种定义分段函数的方法: 常规方法:使用if.. ...

  9. f2py支持在fortran语言中调用其他Fortran函数或C代码或Python代码

    f2py支持在fortran语言中调用其他Fortran函数或C代码或Python代码 分类: Python Numpy_Scipy fortran MinGW_GCC_Boost f2py 2012 ...

最新文章

  1. Python培训教程分享:Python异常机制
  2. LeetCode Path Sum III(前缀和)
  3. 用java和汇编开发一个Hello World系统内核
  4. Netty网络聊天室完整代码实现
  5. 项目管理学习 总结(一)
  6. linux expect sftp,expect实现sftp文件同步
  7. 微信公众平台客户端调试工具
  8. nginx websocket wss 连接失败 failed_Nginx 配置WSS 解析与实战
  9. 《Java程序设计语言(第4版)》阅读笔记(1)
  10. python 下载公众号文章_python如何导出微信公众号文章方法详解
  11. 最新四方支付平台源码(PHP版本,完全开源)提供第四方支付系统搭建服务。
  12. 白鹭引擎 android9,【安卓】手把手教你Egret引擎一键发布华为快游戏
  13. 每天接触互联网 了解互联网是什么
  14. jQuery siblings()用法与实例。
  15. 我们来统计一个各大学中国学生会CSSA的list吧
  16. 活动排期php开源,PHP-php实现排期的高效算法
  17. Java-PTA USB接口的定义
  18. mysql将多行结果合并
  19. centos7 apache 虚拟目录 You don't have permission to access / on this server 解决方法
  20. Ubuntu好用的截图软件推荐

热门文章

  1. Delphi与ASP结合发邮件
  2. BugBash活动分享
  3. zookeeperclient设置监听
  4. [AngularJS] “多重路由”嵌套模块——AngularJS“路由”嵌套学习资料教程
  5. 视频编辑SDK---我们只提供API,任你自由设计炫酷的功能
  6. (二十一)unity4.6学习Ugui中文文档-------交互-Supported Events amp; Raycasters
  7. ASP.NET中Cookie的使用(实战教程)
  8. 详解jQuery对象与DOM对象的相互转换
  9. 基于python的界面自动化测试-基于Python语言的自动化测试实战第二章(上)
  10. 软件工程python就业方向-软件工程实践总结