函数和代码复用 --Python
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. 20 B. 10 C. 1 D. 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的更多相关文章
- Python基础篇(三)_函数及代码复用
Python基础篇_函数及代码复用 函数的定义.使用: 函数的定义:通过保留字def实现. 定义形式:def <函数名>(<参数列表>): <函数体> return ...
- Python学习笔记(五)函数和代码复用
函数能提高应用的模块性,和代码的重复利用率.在很多高级语言中,都可以使用函数实现多种功能.在之前的学习中,相信你已经知道Python提供了许多内建函数,比如print().同样,你也可以自己创建函数, ...
- Python__函数和代码复用
主要内容 函数的定义和使用 实例:七段数码管的绘制 代码复用与函数递归 PyInstall库的使用 实例:科赫雪花小包裹 函数的定义与使用 函数的理解与定义 函数的使用及调用过程 函数的参数传递 函数 ...
- Python学习笔记6函数和代码复用
1.函数 (1)定义: (2)函数调用 (3)函数的参数传递 参数传递的两种方式:函数调用时,参数可以按照位置或名称的方式传递 (4)函数的返回值 (5)局部变量和全局变量 (6)lambda函数 2 ...
- Python语言程序设计基础(5)—— 函数和代码复用
lambda sum = lambda x,y : x + y print(sum(3,3),type(sum)) 默认参数 def prints(str,times = 2) : print(str ...
- Python中用函数实现代码的复用
# Python中用函数实现代码复用 """ def funcname(paras): statements return [expression] 关于函数定义说明如下 ...
- Python-函数和代码复用
函数的定义与使用 >函数的理解与定义 函数是一段代码的表示 -函数是一段具有特定功能的.可重用的语句组 -函数是一种功能的抽象,一般函数表达特定功能 -两个作用:降低编程难度 和 代码复用 de ...
- if __name__== "__main__" 的意思(作用)python代码复用
if __name__== "__main__" 的意思(作用)python代码复用 转自:大步's Blog http://www.dabu.info/if-__-name__ ...
- python面向对象入门(1):从代码复用开始
本文从代码复用的角度一步一步演示如何从python普通代码进化到面向对象,并通过代码去解释一些面向对象的理论.所以,本文前面的内容都是非面向对象的语法实现方式,只有在最结尾才给出了面向对象的简单语法介 ...
随机推荐
- 卸载 linux http
当我们想卸载httpd 的时候,使用rpm -qa httpd 的时候,我们发现有很多的依赖包.我们耐心的想一个一个的卸载的时候(使用rpm -e httpd-*),还会进入死循环.解决的办法是:使用 ...
- c程序设计语言第一章1
1,c程序都是由函数和变量组成的. 练习1.6验证布尔表达式getchar()!= EOF的取值是0还是1 答: #include <stdio.h> #include <stdli ...
- 【转载】一分钟了解两阶段提交2PC(运营MM也懂了)
上一期分享了"一分钟了解mongoDB"[回复"mongo"阅读],本期将分享分布式事务的一种实现方式2PC. 一.概念 二阶段提交2PC(Two phase ...
- FastDFS的配置、部署与API使用解读(3)以流的方式上传文件的客户端代码(转)
调用的API为: String[] upload_file( String group_name,//组名,不指定则可设为null long file_size,//文件大小,必须制定 UploadC ...
- Java Unit Testing - JUnit & TestNG
转自https://www3.ntu.edu.sg/home/ehchua/programming/java/JavaUnitTesting.html yet another insignifican ...
- 编程算法 - 数组中出现次数超过一半的数字 代码(C)
数组中出现次数超过一半的数字 代码(C) 本文地址: http://blog.csdn.net/caroline_wendy 题目: 数组中有一个数字出现的次数超过数组长度的一半, 请找出这个数字. ...
- Java 三大特性:封装、继承、多态
一.封装: 对内 可封装自己的实现细节,使之信息隐藏不被其它类破坏: 对外 各个类之间分工明确, 其它类无需关心实现细节,类中细节发生改变,其它类也无需作出更改: 二.继承: 从已有的类中派生出新的类 ...
- vue 更改头像功能实现
——————– 如上图所示:需要完成的功能是点击更改头像,获取本地文件库,选择图片后将原始图片替换.这里我就直接用html文件引入vue来简单实现在这功能,代码如下: HTML: <div i ...
- maven配置本地仓库和国内镜像仓库,解决国内访问国外中央仓库速度过慢问题
Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具. 1.配置本地仓库 打开conf文件夹下面的setting.xml文件 红色方框为配置本地仓 ...
- poj 1789 Truck History 解题报告
题目链接:http://poj.org/problem?id=1789 题目意思:给出 N 行,每行7个字符你,统计所有的 行 与 行 之间的差值(就是相同位置下字母不相同),一个位置不相同就为1,依 ...