目录
题目1 [加强训练]
题干
有如下代码:
num = 10
def anum():
num = 20
print(num)请问这段代码最终输出的值是多少?
训练目标
分清全局变量与局部变量
训练提示
全局变量与局部变量有什么区别?
参考方案
对于在函数内部的变量,如果改变没有global声明的变量,那么相当于是重新定义了一个与全局变量同名的局部变量。
题目2 [加强训练]
题干
有如下代码:
def abnum(big, small, middle):
.....#此处省略一千行代码现在要调用abnum函数,但是怕在调用的时候将参数的位置传错,如何避免这个情况?写一段代码示范下。
训练目标
关键字参数的使用
训练提示
题中已经给了现有的函数以及形参,但是要怎么才能保证实参能够一对一传入,不发生错误呢?
参考方案
明确要用关键字参数,来指定参数位置
操作步骤
在调用函数的时候,直接标明参数的值
参考答案
abnum(big=5, small=1, middle=1)
题目3 [加强训练]
题干
在填写个人资料时,如果选了女性,那么性别是女;如果不选性别,那就是默认是男,那么这个功能用函数怎么实现?
要求如下:定义一个函数gender,并在函数中将“所选性别为*”,并可以成功调用运行。
训练目标
练习缺省参数的使用,事实上缺省参数也是很常使用的。
训练提示
在定义函数的时候,如何声明形参是缺省参数?
缺省参数的意义是什么呢?
参考方案
在声明函数时直接声明缺省参数。
缺省参数意味着,如果不传参数的话,那就按照默认的值来进行使用,并且程序不会报错。
操作步骤
参考答案
def gender(g="男"):
print("您的性别是:"+g)
gender()
# 经过上述例子以及代码,是不是说明我们的缺省参数是可以缺少可以省去的?
题目4 [加强训练]
题干
要求实现一段代码:
声明一个函数num,并且在调用函数的时候,不管输入多少个非关键字参数,函数都可以运行,且在函数内部还要把每个参数输出到屏幕上。
训练目标
不定长元组类型参数的使用
元组的遍历
训练提示
不定长参数有什么作用?
参考方案
在不确定参数的个数的时候,用不定长参数做形参,可以接受多个可以接受的参数。
操作步骤
定义一个函数num,形参为*args,然后在函数内部进行对元组遍历输出即可
参考答案
def num(*args):
for i in args:
print(i)
题目5 [综合训练]
题干
如下所示这是一个字典,{"name":"电脑","price":7000}
请定义这样一个函数num,讲上述字典中的键值对传入到函数num中,要求用不定长参数来接收,并在函数中打印键值对输出
输出格式为:
key: name value: 电脑
key: price value: 700
训练目标
不定长参数字典类型的使用 遍历字典
训练提示
字典类型的不定长参数的关键字什么?
调用函数时应如何传参?
如何对字典完成遍历并输出?
参考方案
1.不定长参数关键字没有固定的关键字,但是一般用 **kwargs多一些
2.传入关键字参数
3.可以对字典的键,值,以及键值对进行遍历
操作步骤
不定长参数关键字没有固定的关键字,但是一般用 **kwargs多一些
遍历选择用dict.items()
调用时传入关键字参数,将键值对传入即可
参考答案
def num(**kwargs):
for key,value in kwargs.items():
print("key:",key,"value:",value)
num(name="电脑", price=700)
题目6 [综合训练]
题干
对于一个函数num,当调用nun(1,2,a=3,b=4)和调用num(3,4,5,6,a=1)以及num(a=1,b=2)的时候都可以正常运行,并且可以对元组以及字典类型进行遍历输出,对字典类型进行输出字典的键值对(形式为:key:a,value:1),
请写出这个函数并完成调用。
训练目标
元组类型不定长参数与字典类型不定长参数的混合使用
训练提示
当有元组以及字典两个不定长参数的时候,顺序要怎么放?如何传参?参数顺序有没有什么顺序?
参考方案
可以采用*args与**kwargs两个形参
定义一个函数num,调用时将关键字参数放在最后面,其他参数放在前面。
操作步骤
定义函数num时,参数顺序应该是*args,**kwargs。
在函数内部分别执行遍历操作即可。
参考答案
def num(*args, **kwargs):
for i in args:
print(i)
for key,value in kwargs.items():
print("key:",key,"value:",value)
num(1,2,3,a=1, b=2)
# num(a=1, b=2) 此种情况也可
题目7 [加强训练]
题干
完成学生管理系统代码。
添加学生功能
删除学生功能
修改学生功能
查询学生功能
查询所有学生功能
训练目标
知识的综合应用
训练提示
参考方案
可参考课堂代码
操作步骤
搭建系统框架
书写各个功能
参考答案
参考课件或者课堂代码