Python 课课练 :函数课后练习题

Posted Amo Xiang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 课课练 :函数课后练习题相关的知识,希望对你有一定的参考价值。


练习前置知识

  1. Chapter One : 开启 Python 之旅
  2. Chapter Two : Python 语言基础、运算符与表达式、程序的控制结构合集
  3. Chapter Three : Python 序列之字符串操作详解
  4. Chapter Four : Python 序列之列表、元组操作详解合集
  5. 超详细的 Python 基础语句总结(多实例、视频讲解持续更新)

一、函数课后练习题

(1) 关于函数的介绍与特点说法错误的是()?
A. 函数是封装好的可以重复使用的,实现相应功能的代码段
B. 函数能提高代码的重复利用率,也方便了后期维护
C. Python 中提供了许多内建函数,也可以根据自己要实现的功能自定义函数
D. 当函数执行到 return 时,函数会继续执行函数体中语句并将结果返回

(2) 下面代码运行结果为 ()?

def get_info1():
    dict1 = {
        'student_info': [
            {'name': '小王', 'class': '计科3班'},
            {'name': '小栗', 'class': '计科2班'},
            {'name': '小杨', 'class': '经管2班'},
            {'name': '小霍', 'class': '经管4班'},
        ],
        'choose_course': [
            {'id': 2, 'course': '健美操'},
            {'id': 5, 'course': '篮球'},
        ]
    }
    return dict1


info = get_info1()
print(info.get('student_info')[3].get('class'))

A. 计科3班
B. 计科2班
C. 经管2班
D. 经管4班

(3) 定义一个 text() 函数如下所示,当调用函数时,运行结果为()?

def text():
    result = 0
    for i in range(0, 5):
        result += i
    print(result)


text()

A. 15
B. 10
C. 1
D. 控制台无输出结果

(4) 下列关于递归函数的说法错误的是()?
A. 递归函数与普通函数没有什么区别
B. 递归函数返回的是自己本身,相当于不停的将自己反复执行
C. 递归函数的优点是定义简单,逻辑清晰。理论上,所有的递归函数都可以写成循环的方式,但循环的逻辑不如递归清晰
D. 滥用递归函数会出现内存溢出的情况

(5) 请看下面的程序代码,运行结果为: ()?

stus = [
    {"name": "xm", "age": 18},
    {"name": "xw", "age": 20},
    {"name": "xl", "age": 15}]

stus.sort(key=lambda x: x["age"])
print(stus[1]["name"])

A. xm
B. xl
C. xw
D. 控制台上无任何输出

(6) 下列哪种参数形参和实参的数量与位置必须完全一致()。?
A. 位置参数
B. 关键字参数
C. 可变参数
D. 默认参数

(7) 符号与形式参数连用表示函数可以接收以元组组成的任意多个实际参数。
A. #
B. *
C. @
D. **

(8) _____语句只要执行,就会直接结束函数的执行。
A. break 语句
B. pass 语句
C. print 语句
D. return 语句

(9) 在创建函数时,假如没有指定参数,需要怎么做才能保证代码的正常运行()?
A. 必须保留一对空的()
B. 需要对函数进行注释
C. 系统默认指定参数不需要做任何其他操作
D. 需要调用函数

(10) 下列关于调用函数时,位置参数的说法错误的是()。
A. 位置参数必须按照正确的顺序传递到函数中,在调用时的数量和位置必须和定义时的一样。
B. 在调用函数时,如果指定的实际参数的数量与形式参数的数量并不一致,将提示缺少必要的位置参数。
C. 在调用函数时,实际参数与形式参数的位置不一致,数据类型也不一致,系统将会抛出 TypeError 的异常。
D. 在调用函数时,实际参数与形式参数的位置不一致,数据类型一致,系统不会抛出异常,但是产生的结果会与预期的不符。

(11) 在Python中,关于定义可变参数,下列的说法正确的是()。
A. 定义可变参数主要有两种形式,一种是 *parameter,另一种是 **parameter
B. 如果想使用一个已经存在的列表作为参数的可变参数,可以在列表的名称前加 **
C. 如果想要使用一个已经存在的字典作为函数的可变参数,可以在字典的名称前加 *
D. **parameter 形式的可变参数表示接收任意多个类似关键字参数一样显式赋值的实际参数,并将其放到一个元组中。

(12) 下列关于局部变量与全局变量说法正确的是()。
A. 如果出现 NameError 的异常,则是因为在函数外部使用函数内部定义的变量。
B. 访问全局变量有两种方式,一种是在函数体外定义全局变量,另一种是在函数体内定义并用 global 关键字修饰之后,该变量也可以作为全局变量访问。
C. 当局部变量与全局变量重名,对函数体的变量赋值之后,会影响函数体外的变量。
D. 全局变量只能在函数体外访问到,在函数体内访问不到,系统会抛出 NameError 的异常。

(13) 使用 lambda 表达式时,下面描述正确的是()。
A. 参数的数量必须要与表达式的个数一致。
B. lambda 表达式必要的时候要与 for 等表达式一起连用。
C. 在 Python 中,通常情况下,lambda 表达式可以使用多次。
D. lambda 表达式主要应用于函数没有名字,而又不想去费力想名字的场合。

(14) 下列代码的输出结果为()。

def func(x, n):
    s = 1
    while n > 0:
        n = n - 1
        s = s * x
    return s


result = func(2, 3)
print(result)

A. 4
B. 6
C. 8
D. 9

(15) 自定义一个录入信息的函数,下列代码的输出结果为()?

def info(name, gender):
    return 'name:', name
    return 'gender:', gender


print(info("Amo", "Male"))

A. ‘name:’,‘Amo’,
‘gender:’,‘Male’
B. (‘name:’, ‘Amo’)
C. None
D. 报错

(16) 通过遍历的方式计算字符串 人生苦短,我用Python 的长度,输出结果为()?

def length(string):
    x = 0
    for i in string:
        x += 1
    print(f"该字符串的长度为:{x}")
    return x


length("人生苦短,我用Python")

A. 该字符串的长度为:13
B. 该字符串的长度为:13
13
C. 人生苦短,我用Python
D. 13

(17) 同名不同命?重名的全局变量和局部变量,其各自“命运”究竟如何,请从下列代码的运算结果判断()。

a = 2


def multiply(x, y=10):
    a = x * y
    return a


b = multiply(5, 7)
print(b)
print(a)

A. 50
50
B. 35
35
C. 35
2
D. 50
2

(18) 身在江湖,江湖却没有小明的传说。身为金庸迷,虽没有绝世武功,但小明志在写出“绝世代码”!想要输出金庸武侠世界的五大高手,如下所示,下列哪项代码正确()?

1 达摩祖师
2 越女阿青
3 张三丰
4 段思平
5 扫地僧

A.

def hero(**name):
    for index, item in enumerate(name):
        print(index + 1, item)


hero("达摩祖师","越女阿青","张三丰","段思平","扫地僧")

B.

def hero(*name):
    return name


hero("达摩祖师", "越女阿青", "张三丰", "段思平", "扫地僧")
for index, item in enumerate(name):
    print(index + 1, item)

C.

def hero(*name):
    for index, item in enumerate(name):
        print(index + 1, item)


hero("达摩祖师", "越女阿青", "张三丰", "段思平", "扫地僧")

D.

def hero(*name):
    for index, item in enumerate(name):
        print(index, item)


hero("达摩祖师", "越女阿青", "张三丰", "段思平", "扫地僧")

(19) 已知

g = lambda x, y=3, z=5: x * y * z
print(g(1))

则语句 print(g(1)) 的输出结果是()?
A. 15
B. 20
C. 0
D. 10

(20) 下面代码的输出结果是()?。

f = lambda x, y: y + x
print(f(10, 10))

A. 10
B. 20
C. 10, 10
D. 100

(21) 下面代码的输出结果是()?

a = '幸运的人一生被童年治愈,不幸的人一生都在治愈童年。'
print('函数体外:a=', a)


def f_demo():
    global a
    a = '所有那些看上去高尚的职业,都不意味着从业人员就高尚。'
    print('函数体内:a =', a)


f_demo()
print('函数体外:a=', a)

A.

函数体外:a= 幸运的人一生被童年治愈,不幸的人一生都在治愈童年。
函数体内:a = 所有那些看上去高尚的职业,都不意味着从业人员就高尚。
函数体外:a= 幸运的人一生被童年治愈,不幸的人一生都在治愈童年。

B.

函数体外:a= 幸运的人一生被童年治愈,不幸的人一生都在治愈童年。
函数体内:a = 幸运的人一生被童年治愈,不幸的人一生都在治愈童年。
函数体外:a= 所有那些看上去高尚的职业,都不意味着从业人员就高尚。

C.

函数体外:a= 所有那些看上去高尚的职业,都不意味着从业人员就高。
函数体内:a = 幸运的人一生被童年治愈,不幸的人一生都在治愈童年。
函数体外:a= 所有那些看上去高尚的职业,都不意味着从业人员就高。

D.

函数体外:a= 幸运的人一生被童年治愈,不幸的人一生都在治愈童年。
函数体内:a = 所有那些看上去高尚的职业,都不意味着从业人员就。
函数体外:a= 所有那些看上去高尚的职业,都不意味着从业人员就高。

(22) 给出如下代码:

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

(23) 给出如下代码:

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’]

(24) 小宁写了一个函数,接收任意多个数,返回一个元组,其中第一个元素为所有参数的平均值,其他元素为所有参数中大于平均值的数,看看她的函数有什么错误吧!()

def demo(*para):
    avg = sum(para) / len(para)
    g = [i for i in para if i > avg]
    return avg + tuple(g)


print(demo(12.5, 35, 23, 45.6))

A. 1行 *para 改成 para
B. 2行/改成*
C. 4行改成 return(avg,)+tuple(g)
D. 没有错误

(25) 小明想用Python输出他喜欢的小零食,事先列好了一个表,小明想通过程序输出这个列表,请你帮他检查一下,它运行的代码有没有错误()。

param = ['巧克力', '爆米花', '烤肠']
printlingshi*(**param)

A. 没有。
B. 有,没有定义函数 printlingshi()。
C. 有,引入已经存在的列表可变参数,应在列表前加 * 不是 **
D. 有,没有定义函数 printlingshi();引入已经存在的列表可变参数,应在列表前加 * 不是 **

以上是关于Python 课课练 :函数课后练习题的主要内容,如果未能解决你的问题,请参考以下文章

Android 开发高手课 课后练习

《Python编程:从入门到实践》课后习题及答案

python学习17——课后练习

《Python从入门到实践》--第八章 函数 课后练习

第三课课后作业 请说明ZigBee入网参数PANID和MAC的用途?

《python核心编程第二版》课后习题6-12答案