Python-语法进阶(2)

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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值