Python快速上手系列--函数下篇--详解篇

简介: Python快速上手系列--函数下篇--详解篇

上一章我们学习了函数的基本用法,以及结合了前面的知识做了一些回顾性的例题。本章我们继续学习函数,用更多的例题让你深入理解函数。

向函数传递列表

def get_list(names):
    for name in names:
        # 定义这个变量是为了打印名字的时候首字母可以大写
        l_name = f"你好,{name}"
        print(l_name.title())
# 这里定义一个列表
user_name = ['tom','tim','bob']
# 调用函数,使用列表的值
get_list(user_name)

话不多说,我们首先上了一个例子,这个例子中l_name这里,小伙伴有疑问就自己动手试试,不要这个l_name变量看看能不能首字母大写哦,也可以试试其他的方法首字母大写哦。这里只是告诉各位可以这么来写,并无其他用途,它就等价于print(f"你好,{name.title()}")。

在函数中修改列表

def full_animals(animals,make_animals):
    # 循环动物列表
    while animals:
        # 使用列表方法方法,一个个移除
        new = animals.pop()
        print(f"被运走的动物有:{new}")
        # 将移除的重新添加到新的动物列表中
        make_animals.append(new)
    # 循环遍历添加进去的动物
# def make_full_animals(make_animals):
    for every_animals in make_animals:
        print(f"被添加进来的动物有:{every_animals}")
animals = ['cat','dog','bird','snake']
make_animals = []
full_animals(animals,make_animals)
# make_full_animals(make_animals)

这个示例就涉及到我们之前学习的列表的,如果你可以看懂,说明学的还是很OK的。

我们也可以添加一个函数,添加在for循环前面哦,不过清安这里注释掉了,你可以自己尝试一下。这里小伙伴们可能看着有点犯迷糊,看我将它分解为不是函数体制的,小伙伴一对比就明白了。

animals = ['cat', 'dog', 'bird', 'snake']
make_animals = []
# 循环这个动物列表
while animals:
    # 使用列表方法方法,一个个移除
    new = animals.pop()
    print(f"被运走的动物有:{new}")
    # 将移除的重新添加到新的动物列表中
    make_animals.append(new)
for every_animals in make_animals:
    print(f"被添加进来的动物有:{every_animals}")

传递任意数量的实参

首先我们需要明白的一点是什么样的格式才能进行任意数量的实参传递呢,看例子吧:

def new_name(*name):
    print(name)
new_name('张三','李四','王五')

我们定义了一个带有*号的形参,这个形参的意思就是会让python创建一个名为name的空元组,如何通过调用函数将实参写入空元组中。

小伙伴也可以换一种输出方式:用for循环一个个输出出来

def new_name(*name):
    for names in name:
        print(names)
new_name('张三','李四','王五')

这个就不解释了,小伙伴应该秒懂,不懂得看我for循环介绍哦。实参我们是可以组合起来用的哦。

这里的*name在后面学习过程种我们会看到不同的用法,这里是组成一个元组,后面还有会解包等用法。

位置实参与任意数量实参

def new_name(year,*name):
    for names in name:
        print(f"我的名字叫{names},今年{year}岁了")
new_name(12,'张三','李四','王五')

这里值得注意的地方就只是传参的位置了,不管是默认形参还是任意数量形参,都只能放在形参的最后面哦

任意数量的关键字实参

这个就比较有趣,并且比较的重要了,它的方式是**,意思组建一个空字典哦,并且写法也有一些不一样。

def new_name(first_name,last_name,**names):
    # 这里的[]里面的内容可以随意写什么样的字符串哦
    names['first_name'] = first_name    #1
    names['last_name'] = last_name    #2
    # 将值返回到列表,这里的意思就是此路不同,就此打住
    return names
# 这里有两种传值方式
new_names = new_name('zhang','san',lisi = 'lisi',wangwu = 'wangwu')
print(new_names)
# {'lisi': 'lisi', 'wangwu': 'wangwu', 'first_name': 'zhang', 'last_name': 'san'}

解惑:names是创建一个空字典,实则我们这里定义的函数new_name只有两个形参first_name,last_name,往下看#1跟#2这里是字典传值的方式。不明白的可得好好复习了。

我们呢给定实参的时候有两种方式,一种是直接给定形参的值,这是位置实参传值,后面的才是关键字实参传值。

new_names中以=相连接的实参直接传到names字典中,然后传到对应的键值对里。这里不要理解的太复杂,就是类似于重写了键,值是正常通过first_name,last_name传递的。然后重新组建了字典。

注:**names也可以理解为python在收集任意数量的关键字实参,这里在后面也会学习到。

目录
相关文章
|
3月前
|
Python
【python从入门到精通】-- 第五战:函数大总结
【python从入门到精通】-- 第五战:函数大总结
101 0
|
2月前
|
搜索推荐 Python
利用Python内置函数实现的冒泡排序算法
在上述代码中,`bubble_sort` 函数接受一个列表 `arr` 作为输入。通过两层循环,外层循环控制排序的轮数,内层循环用于比较相邻的元素并进行交换。如果前一个元素大于后一个元素,就将它们交换位置。
143 67
|
1天前
|
Python
[oeasy]python057_如何删除print函数_dunder_builtins_系统内建模块
本文介绍了如何删除Python中的`print`函数,并探讨了系统内建模块`__builtins__`的作用。主要内容包括: 1. **回忆上次内容**:上次提到使用下划线避免命名冲突。 2. **双下划线变量**:解释了双下划线(如`__name__`、`__doc__`、`__builtins__`)是系统定义的标识符,具有特殊含义。
14 3
|
5天前
|
JSON 监控 安全
深入理解 Python 的 eval() 函数与空全局字典 {}
`eval()` 函数在 Python 中能将字符串解析为代码并执行,但伴随安全风险,尤其在处理不受信任的输入时。传递空全局字典 {} 可限制其访问内置对象,但仍存隐患。建议通过限制函数和变量、使用沙箱环境、避免复杂表达式、验证输入等提高安全性。更推荐使用 `ast.literal_eval()`、自定义解析器或 JSON 解析等替代方案,以确保代码安全性和可靠性。
19 2
|
1月前
|
Python
Python中的函数是**一种命名的代码块,用于执行特定任务或计算
Python中的函数是**一种命名的代码块,用于执行特定任务或计算
50 18
|
24天前
|
数据可视化 DataX Python
Seaborn 教程-绘图函数
Seaborn 教程-绘图函数
47 8
|
1月前
|
Python
Python中的函数
Python中的函数
45 8
|
2月前
|
监控 测试技术 数据库
Python中的装饰器:解锁函数增强的魔法####
本文深入探讨了Python语言中一个既强大又灵活的特性——装饰器(Decorator),它以一种优雅的方式实现了函数功能的扩展与增强。不同于传统的代码复用机制,装饰器通过高阶函数的形式,为开发者提供了在不修改原函数源代码的前提下,动态添加新功能的能力。我们将从装饰器的基本概念入手,逐步解析其工作原理,并通过一系列实例展示如何利用装饰器进行日志记录、性能测试、事务处理等常见任务,最终揭示装饰器在提升代码可读性、维护性和功能性方面的独特价值。 ####
|
2月前
|
Python
Python中的`range`函数与负增长
在Python中,`range`函数用于生成整数序列,支持正向和负向增长。本文详细介绍了如何使用`range`生成负增长的整数序列,并提供了多个实际应用示例,如反向遍历列表、生成倒计时和计算递减等差数列的和。通过这些示例,读者可以更好地掌握`range`函数的使用方法。
55 5
|
3月前
|
Python
Python之函数详解
【10月更文挑战第12天】
Python之函数详解