• Python:函数和代码复用


    嗨喽,大家好呀~这里是爱看美女的茜茜呐


    👇 👇 👇 更多精彩机密、教程,尽在下方,赶紧点击了解吧~

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    以下选项中描述错误的是

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

    B. 该函数名称为func

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

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

    答案:A

    答案解析:

    执行该函数后,变量c的值为210

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

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

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

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

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

    答案:D

    答案解析:

    全局变量可以和局部变量重名,全局变量指的是在函数之外定义的变量,在程序执行全过程有效。

    全局变量在函数内部使用时,需要提前使用保留字global声明。

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

    例如:

    '''
    遇到问题没人解答?小编创建了一个Python学习交流QQ群:261823976
    寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
    '''
    n =2
    def multiply(x, y =10):
        n =x*y     #局部变量n,和第一行代码n不同。
        return n   #返回的n也是局部变量n
    s =multiply(99,2)
    print(s)
    print(n)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

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

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

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

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

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

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

    答案:D

    答案解析:

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

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

    A. 书写简单

    B. 执行效率高

    C.一定要有基例

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

    答案:B

    答案解析:

    递归程序的执行效率比较低

    10、下面代码的输出结果是
     f = lambda x,y:y+x
     f(10,10)
    
    • 1
    • 2

    A. 10

    B. 20

    C.10,10

    D.100

    答案:B

    答案解析:

    lambda表达式相当于:

    def fun(x, y):
        return x + y
    print(fun(10, 10))
    
    • 1
    • 2
    • 3
    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、下面代码实现的功能描述为
    '''
    遇到问题没人解答?小编创建了一个Python学习交流QQ群:261823976
    寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
    '''
    def fact(n):
        if n == 0:
            return 1
        else :
            return n * fact(n-1)
    num = eval(input('请输入一个整数:'))
    print(fact(abs(int(num))))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5

    以下选项中描述错误的是

    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)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    以下选项中描述错误的是

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

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

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

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

    答案:B

    答案解析:

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

    22、给出如下代码
    '''
    遇到问题没人解答?小编创建了一个Python学习交流QQ群:261823976
    寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
    '''
    ls = ['car','truck']
    def funC(a):
        ls = []
        ls.append(a)
        return
    funC('bus')
    print(ls)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    以下选项中描述错误的是

    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)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    以下选项中描述错误的是

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5

    可简写为:

    a, b, c = 1, 2, 3
    c = a if a > b else b
    
    • 1
    • 2

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

    24、给出如下代码
    '''
    遇到问题没人解答?小编创建了一个Python学习交流QQ群:261823976
    寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
    '''
    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)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    以下选项中描述错误的是

    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)
    
    • 1
    • 2
    • 3
    • 4
    • 5

    A.10

    B.11

    C.出错

    D.int

    答案:B

    答案解析:

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

    26、下面代码的运行结果是
    '''
    遇到问题没人解答?小编创建了一个Python学习交流QQ群:261823976 
    寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
    '''
    def func(a, b):
        return a >> b
    s = func(5, 2)
    print(s)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    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)
    
    • 1
    • 2
    • 3
    • 4
    • 5

    A. 20

    B. 10

    C. 1

    D. 12

    答案:B
    28、下面代码的运行结果是
    '''
    遇到问题没人解答?小编创建了一个Python学习交流QQ群:261823976
    寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
    '''
    def f2(a):
        if a > 33:
            return True
    li = [11, 22, 33, 44, 55]
    res = filter(f2, li)
    print(list(res))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    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是对象类型。

    尾语

    感谢你观看我的文章呐~本次航班到这里就结束啦 🛬

    希望本篇文章有对你带来帮助 🎉,有学习到一点知识~

    躲起来的星星🍥也在努力发光,你也要努力加油(让我们一起努力叭)。

    最后,宣传一下呀~👇👇👇更多源码、资料、素材、解答、交流皆点击下方名片获取呀👇👇

  • 相关阅读:
    【JVM技术专题】精心准备了一套JVM分析工具的锦囊「中篇」
    Apache ECharts简介
    在移动固态硬盘上安装Ubuntu系统和ROS2
    【LeetCode刷题-滑动窗口】--1695.删除子数组的最大得分
    R语言ggplot2可视化:使用ggpubr包的ggboxplot函数可视化分组箱图、使用set_palette函数同时改变可视化图像的线条色和填充色
    els 显示一个随机方块
    Spring Cloud Alibaba Gateway 简单使用
    使用Socks5代理和HTTP协议的爬虫技术
    re学习(38)HGAME2020-re-Level-Week1-maze
    2023年Flutter教程_Flutter+Getx仿小米商城项目实战视频教程-V3版
  • 原文地址:https://blog.csdn.net/m0_72282564/article/details/132976103