A.包含一个循环结构
B.函数比较复杂
C.函数内部包含对本函数的再次调用
D.函数名称做为返回值python
答案:D
答案解析:递归函数是指函数内部包含对本函数的再次调用。编程
A.递归函数必须有基例
B.递归函数的基例再也不进行递归
C.每一个递归函数都只能有一个基例
D.递归函数的基例决定递归的深度app
答案:C
答案解析:每一个递归函数至少存在一个基例编程语言
A.提升代码执行速度
B.复用代码
C.加强代码可读性
D.下降编程复杂度模块化
答案:C
答案解析:函数的做用是复用代码、加强代码可读性、下降编程复杂度,而并不能提升代码的执行速度。函数
A.参数是列表类型时,改变原参数的值
B.参数是整数类型时,不改变原参数的值
C.参数是组合类型(可变对象)时,改变原参数的值
D.参数的值是否改变与函数中对象的操做有关,与参数类型无关设计
答案:D
答案解析:python里有可变对象和不可变对象之分。只有传入的是不可变对象时,值才不发生改变,如果可变对象,值的传入须要注意。不可变对象:Number ,String ,Tuple,bool。可变对象: List , Set , Dictionary是能够改变内部的元素 。code
A. 一个函数中只容许有一条return语句对象
B. Python中,def和return是函数必须使用的保留字
C. Python函数定义中没有对参数指定类型,这说明,参数在函数中能够看成任意类型使用
D. 函数eval()能够用于数值表达式求值,例如eval(‘2*3+1’)排序
答案:D
答案解析:函数能够不使用return语句或多条return语句,所以A,B不正确;Python函数定义中没有对参数指定类型,函数中应根据实参的类型使用,C不正确。
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
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错误
A. 面向对象编程比面向过程编程更为高级
B. 面向对象和面向过程是编程语言的分类依据
C.模块化设计就是面向对象的设计
D.全部面向对象编程能实现的功能采用面向过程一样能完成
答案:D
答案解析:面向对象编程能实现的功能都可以采用面向过程一样能完成
A. 书写简单
B. 执行效率高
C.必定要有基例
D.递归程序均可以有非递归编写方法
答案:B
答案解析:递归程序的执行效率比较低
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))
A.函数定义中参数列表里面的参数是实际参数,简称实参
B.参数列表中给出要传入函数内部的参数,这类参数称为形式参数,简称形参
C.程序在调用时,将实参复制给函数的形参
D.程序在调用时,将形参复制给函数的实参
答案:C
答案解析:函数定义中参数列表里面的参数是形参,参数列表中给出要传入函数内部的参数,这类参数称为实参;程序在调用时,将实参复制给函数的形参
A. lambda函数也称为匿名函数
B. lambda函数将函数名做为函数结果返回
C.定义了一种特殊的函数
D.lambda不是Python的保留字
答案:D
答案解析:lambda是Python的保留字
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错误
A. 在定义函数时,若是有些参数存在默认值,能够在定义函数时直接为这些参数指定默认值
B. 在定义函数时,能够设计可变数量参数,经过在参数前增长星号(*)实现
C. 可选参数能够定义在非可选参数的前面
D. 一个元组能够传递给带有星号的可变参数
答案:D
答案解析:可选参数不能够定义在非可选参数的前面
A.函数中最多只有一个return语句
B.函数必须有一个return语句
C.return只能返回一个值
D.函数能够没有return语句
答案:D
答案解析:函数return的个数没有限制,能够没有return语句
A.函数是一段具备特定功能的、可重用的语句组
B.函数能完成特定的功能,对函数的使用不须要了解函数内部实现原理,只要了解函数的输入输出方式便可
C.使用函数的主要目的是下降编程难度和代码重用
D.Python使用del保留字定义一个函数
答案:D
答案解析:Python使用def保留字定义一个函数
A.全局变量指在函数以外定义的变量,通常没有缩进,在程序执行全过程有效
B.局部变量指在函数内部使用的变量,当函数退出时,变量依然存在,下次函数调用能够继续使用
C.使用global保留字声明简单数据类型变量后,该变量做为全局变量使用
D.简单数据类型变量不管是否与全局变量重名,仅在函数内部建立和使用,函数退出后变量被释放
答案:D
答案解析:局部变量指在函数内部定义的变量,仅在函数内部有效,当函数退出时,变量将再也不存在。
A.lambda用于定义简单的、可以一行内表示的函数
B.可使用lambda函数定义列表的排序原则
C.f = lambda x,y:x+y执行后,f的类型为数字类型
D.lambda函数将函数名做为函数结果返回
答案:D
答案解析:C选项中,f的类型依参数来肯定
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的阶乘值
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不是可选参数,可选参数有*或**
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']
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是全局变量。
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不正确
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等
答案:B
答案解析:参数若是须要布尔值,而输入的是数值,那么只须要该数值为非0的数,对应为True,若是输入的数值为0,则表明False。
def func(num): num += 1 a = 10 func(a) print(a)
A.10
B.11
C.出错
D.int
答案:B
答案解析:函数在传递参数时,指将实参复制给形参,并未对实参自己发生改变。
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。
def func(a, b): a *= b return a s = func(5, 2) print(s)
A. 20 B. 10 C. 1 D. 12
答案:B
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是对象类型。