python基础知识--函数

简介: python基础知识--函数

 (创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹)

目录

一、函数

1.函数的定义

2.函数的参数

3.函数的返回值

4.将函数储存在模块

二、lambda函数和列表的排序

1.lambda函数

2.列表的排序


一、函数

1.函数的定义

函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。

任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。

函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。

函数内容以冒号起始,并且缩进。

return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。

def printf():
    print("hello world")
printf()
printf()

hello world

hello world

2.函数的参数

• 正常情况下定义的参数需要按顺序传对应的参数;

• 参数可以设置默认值,调用时不用传这些参数的值

• 关键字参数,可以用 name=value 的形式调用函数,并且顺序可以换;

• 传不可变对象 string 、 tuple , 数据不能被改变;传可变对象 list 、 dict 、 set , 数据可以被改变

def introduct(name):
    print(f"大家好,我是{name}")
introduct("xiaoming")

大家好,我是xiaoming

3.函数的返回值

可以用return返回函数的计算结果

可以用逗号分隔返回多个值,调用时拆包获取各值

#函数的返回
def add(x,y):
    x = int(x)
    y = int(y)
    return x+y
result = add(3,5)
print(result)
print((add("3","5")))

8

8

函数可以具有一个或者一组值,将逻辑“封装”在函数中,会简化整个程序

#函数返回一个字典
students={
     "xiaozhang":{"id":101,"grade":88},
     "xiaowang":{"id":102,"grade":77}
}
def get_student(name):
    if name in students:
        return students[name]
    else:
        return None
print(get_student("xiaozhang"))
print(get_student("xiaoxiao"))

{'id': 101, 'grade': 88}

None

4.将函数储存在模块

在实际开发中,代码都会放在不同的文件中

模块module是文件,以.py为后缀名,包含类、函数、语句

举例:

新建一个computer.py文件,在里面编写add、sub、mul、div四个函数,那么computer就是一个模块,里面的四个函数都会被其他文件使用

新建另一个main.py,用如下方法可以引用computer.py代码

1.import computer:然后用computer.add等调用函数

2.import computer as cp:给模块起别名,然后用cp.add调用函数

3.from computer import add,sub:然后用add、sub函数直接使用

4.from computer import *:可以直接使用add、sub等所有函数

# @File : computer.py
def add(x,y):
    return x+y
def sub(x,y):
    return x-y
def mul(x,y):
    return x*y
def div(x,y):
    return x/y
#调用模块
import computer
print(computer.add(3,5))
from computer import add,sub,mul,div
print(add(3,5))

8

8

二、lambda函数和列表的排序

1.lambda函数

lambda函数:

• 称为匿名函数,函数的定义直接使用,不用起名字

• 又称为一句话函数、逻辑简单到一行代码就能表达逻辑

• 用于一些简单的、不会重复多次调用的情景

定义形式:

1.lambda 参数:操作(参数)

2.定义举例:sum = lambda x,y: x+y

3.调用举例:sum(1,2)

使用场景:

• 既然逻辑能够在一行完成,那直接写逻辑即可,为什么要写成一个函数?

• 因为有些 python 的有些高级函数,比如 list.sort 、 sorted 、 map 、 reduce 等,它们的调用需要传一个函数作为参数传入

2.列表的排序

• 列表排序方法 1 :

       list.sort(key=None, reverse=False)

• 列表排序方法 2 :

       new_list = sorted(iterable, key=None, reverse=False)

• 其中的 key 参数,可以传入一个函数,指定排序的元素,对于这个函数,用 lambda 可以简化代码

举例:对学生数据按成绩排序

sgrades=[(1001,89),(1002,77),(1003,99)]

• 不可行的方法: sgrades.sort () ,只会按照第一项排序

• 方法 1 : sgrade s .sort( ke y =lambda x:x [1])

 方法2 : new_list = sorted( sgrades , key=lambda x:x [1], reverse=True

#按照成绩排序
sgrades=[(1001,89),(1002,77),(1003,99)]
sgrades.sort(key=lambda m:m[1])#sort将每个元素传给lambda
print(sgrades)

[(1002, 77), (1001, 89), (1003, 99)]

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