11.函数内部通过方法修改可变参数
def demo(num_list):
print("函数内部的代码")
# 使用方法修改列表的内容
num_list.append(9)
print(num_list)
print("函数执行完成")
gl_list = [1, 2, 3]
demo(gl_list)
print(gl_list)
12.加等于(面试题)
def demo(num, num_list):
print("函数开始")
# num = num + num
num += num
# 列表变量使用+= 不会做相加再赋值的操作!本质上是在调用列表的extend方法
# num_list = num_list + num_list
# num_list += num_list
num_list.extend(num_list)
print(num)
print(num_list)
print("函数完成")
gl_num = 9
gl_list = [1, 2, 3]
demo(gl_num, gl_list)
print(gl_num)
print(gl_list)
13.函数的缺省参数
gl_list = [6,3,9]
# 默认按照升序排序
# gl_list.sort()
gl_list.sort(reverse=True) # 降序排序
print(gl_list)
14.函数的缺省参数定义
def print_info(name, gender=True):
"""
:param name: 班上同学的姓名
:param gender: True 男生 False 女生
:return:
"""
gender_text = "男生"
if not gender:
gender_text = "女生"
print("%s 是 %s" % (name, gender_text))
# 假设班上的男生居多
# 提示:在指定缺省参数的默认值时,应该使用最常见的值作为默认值!
print_info("小明")
print_info("老王")
print_info("小美", False)
15.缺省参数注意点
def print_info(name, title="研发", gender=True):
"""
:param title: 职位
:param name: 班上同学的姓名
:param gender: True 男生 False 女生
:return:
"""
gender_text = "男生"
if not gender:
gender_text = "女生"
print("【%s】%s 是 %s" % (title,name, gender_text))
# 假设班上的男生居多
# 提示:在指定缺省参数的默认值时,应该使用最常见的值作为默认值!
print_info("小明")
print_info("老王")
print_info("小美", gender=False)
16.多值参数
def demo(num, *nums, **person):
print(num)
print(nums)
print(person)
demo(1)
demo(1, 2, 3, 4, 5, name="小明", age=18)
17.多值参数求和
def sum_numbers(*args):
num = 0
print(args)
# 循环遍历
for n in args:
num += n
return num
result = sum_numbers(1, 2, 3, 4, 5)
print(result)
18.元组和字典的拆包
def demo(*args, **kwargs):
print(args)
print(kwargs)
# 元组变量/字典变量
gl_nums = (1, 2, 3)
gl_dict = {"name": "小明", "age": 18}
# demo(gl_nums, gl_dict)
# 拆包语法,简化元组变量/字典变量的传递 元组变量前加一个*,字典变量前加两个*
demo(*gl_nums, **gl_dict)
demo(1, 2, 3, name="小明", age=18)
19.递归函数的特点
def sum_number(num):
print(num)
# 递归的出口,当参数满足某个条件时,不再执行函数
if num == 0:
return
# 自己调用自己
sum_number(num - 1)
sum_number(3)
20.递归求和
# 定义一个函数 sum_numbers
# 能够接收一个num的整数参数
# 计算 1+2+3+...+num的结果
def sum_numbers(num):
# 1.递归出口
if num == 1:
return 1
# 2.数字的累加 num +(1...num-1)
# 假设sum_numbers 能够正确的处理 1...num-1
temp = sum_numbers(num - 1)
# 两个数字的相加
return num + temp
result = sum_numbers(100)
print(result)