函数进阶
知识点
函数返回多个值
1 | # 利用元组可以使一个函数返回多个值,若返回的是元组,则可以省略元组左右两边的小括号 |
变量互换
1 | # 利用元组可以直接互换变量的两个数据, 注意=右侧的表示的是一个元组 |
参数变更
1 | # 在函数内部仅仅针对传递的变量进行赋值语句,其本质只是修改局部变量的引用,不会影响外部变量的引用 |
1 | # 如果函数中传递的是可变类型的数据,且在函数内部修改了数据的内容,则其同样会影响到外部的数据 |
+=运算符
1 | # 在python中,列表变量调用+=本质上是在执行列表变量的extend方法,不会改变变量的引用 |
传递多值参数
1 | # python中传递多值参数的方式:元组、字典 |
1 | # 拆包:调用函数传递参数时,需要在对应的变量前加* |
递归
1 | # 递归:函数在函数内部调用自己,但是函数中一定要有判断条件,当符合条件时,不再执行函数,否则就出现了死循环 |
1 | def add(i): |
作业
定义一个函数mess,接受两个变量:test, shuai,然后返回这两个变量的值
(问答)针对第一题,如果需要单独处理函数返回值的变量值,请问如何接受函数mess的返回值
请在不适用第三方变量的情况下,互换a和b的变量值(两种方式)
(问答)请问,在如下程序中,是否有更改主程序中num、list_test的变量值、结构
1
2
3
4
5
6
7def demo(num, list_test):
num = 2
list_test = [1,2,3]
num = 1
list_test = [4, 5, 6]
demo(num, list_test)(问答)请问,在如下程序中,是否有更改主程序中list_test的变量值、结构,并回答为什么?
1
2
3
4
5def demo(list_test):
list_test.append(9)
list_test = [4,5,6]
demo(list_test)(问答)列表元素使用+=方法,本质是进行了什么样的操作
定义一个函数,接受参数一个是元组:tuple_name,另一个是字典:dict_name,函数的功能是打印出接受的参数,然后通过调用函数,打印出如下信息:
1
2(1,2)
{"name":1, "class":2}(问答)在传递多值参数时,如果是元组,建议用什么命名;如果是字典,建议用什么命名
编写程序,利用函数的递归,实现1-100之间所有整数的叠加和