之前学习了函数的妙用Python基础(八、函数的妙用,猫捉老鼠游戏),本篇文章将学习函数的进阶用法。
函数的语法:
def function_name(parameter1, parameter2, ...):
"""函数说明文档"""
# 函数体
# 可以包含一系列操作
return return_value # 可选
学习了函数的普通用法,知道函数可以通过传参,返回值的方式与其他函数进行交互。
那么传参可以是多个,返回值多个或者不同类型的是否可以呢?这个我们将详细的验证和使用下。
很多场景是需要获取多个返回值的,例如登录的时候使用短信验证,要返回验证码和用户名几个基础信息。
import random
def function_name(phone):
yzm = random.randint(1000,9999)
user_name = "Tom"
return yzm,user_name
yzm,user_name = function_name("17644000044")
print(yzm)
print(user_name)
在做管理系统的时候,会有检索,或者查询详情的功能。
那么就需要通过一个函数获取信息,这个信息一般就会放到对象当中,例如:
(返回值不局限于字典,还可以是列表,集合等等。
也可以是多个对象,每个对象之间用逗号分隔即可。取值的时候按照顺序获取。)
user = {
"239104": {"account": "239104",
"name": "张晓明",
"age": "19",
"sex": "男",
"class": "一班",
"grade": "高三"},
"239105": {"account": "239105",
"name": "流明",
"age": "19",
"sex": "男",
"class": "一班",
"grade": "高三"},
"239106": {"account": "239106",
"name": "晓宁",
"age": "19",
"sex": "女",
"class": "一班",
"grade": "高三"}
}
def function_name(account):
user_dict = {}
for key in user:
if key == account:
user_dict = user[account]
return user_dict
print(function_name("239105"))
输出:
{'account': '239105', 'name': '流明', 'age': '19', 'sex': '男', 'class': '一班', 'grade': '高三'}
# 位置参数示例
def greet(name, age):
print("Hello, {}! You are {} years old.".format(name, age))
greet("Alice", 25) # 输出:Hello, Alice! You are 25 years old.
# 关键字参数示例
def greet(name, age):
print("Hello, {}! You are {} years old.".format(name, age))
greet(age=25, name="Alice") # 输出:Hello, Alice! You are 25 years old.
# 缺省参数示例
def greet(name, age, country="Unknown"):
print("Hello, {} from {}! You are {} years old.".format(name, country, age))
greet("Alice", 25) # 输出:Hello, Alice from Unknown! You are 25 years old.
greet("Bob", 30, "USA") # 输出:Hello, Bob from USA! You are 30 years old.
# 不定长参数示例
def greet(*args, **kwargs):
for arg in args:
print("Hello, {}!".format(arg))
for key, value in kwargs.items():
print("{}: {}".format(key, value))
greet("Alice", "Bob", friend1="Charlie", friend2="David")
# 输出:
# Hello, Alice!
# Hello, Bob!
# friend1: Charlie
# friend2: David
在前面的函数学习中,我们一直使用的函数,都是接受数据作为参数传入:
def add(a, b):
return a + b
def subtract(a, b):
return a - b
def calculate(func, a, b):
return func(a, b)
result1 = calculate(add, 5, 3)
print(result1) # 输出:8
result2 = calculate(subtract, 5, 3)
print(result2) # 输出:2
在上述示例中,我们定义了两个函数 add 和 subtract,分别用于执行加法和减法运算。然后,我们定义了一个名为 calculate 的函数,它接受三个参数:一个函数 func,以及两个数字 a 和 b。这个函数调用了传递进来的函数 func,并将 a 和 b 作为参数传递给它。
最后,我们通过调用 calculate 函数,并传入不同的函数和参数,来计算不同的结果。通过这种方式,我们可以灵活地使用不同的函数进行计算,而不需要修改 calculate 函数的定义。
函数的定义:
def add(x, y):
return x + y
result = add(3, 5)
print(result) # 输出:8
匿名函数定义语法:
传入参数表示匿名函数的形式参数,如:x,y表示接收2个形式参数函数体,就是函数的执行逻辑,要注意:只能写一行,无法写多行代码
add = lambda x, y: x + y
result = add(3, 5)
print(result) # 输出:8
在上述示例中,我们使用lambda函数定义了一个名为 add 的函数,该函数接受两个参数 x 和 y,并返回它们的和。我们将这个函数赋值给变量 add,然后通过调用 add(3, 5),来计算3和5的和,并将结果打印出来。
通过使用lambda函数,我们可以更简洁地定义一些小型的函数,而不需要显式地定义函数名称。需要注意的是,lambda函数通常适用于简单的计算或数据转换操作,对于复杂的任务,建议使用正常的命名函数。
函数是 Python 编程中非常重要和常用的概念,它可以帮助我们将代码模块化、提高代码的复用性和可读性。通过合理运用函数,我们可以更加高效地编写和管理代码。
编写一个函数 get_average_grade,接受一个学生的成绩列表作为参数,并计算该学生的平均分。要求忽略最高分和最低分后的成绩,即去掉一个最高分和一个最低分后再计算平均分。
答案可在评论区留言分享,或者见下节~