马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
弁言
在前面的课程中,我们已经学习了 Python 的根本输入输出、数据范例及其转换、序次布局、分支布局、循环布局、循环控制语句、字符串范例、列表范例、元组范例、字范例例、聚集范例、函数的界说与利用以及函数调用与作用域。本课时将先容 Python 中函数的高级应用,包罗默认参数、可变参数,并通过一个具体的示例来展示函数的高级用法。
默认参数
默认参数是指在界说函数时为参数指定一个默认值。假如在调用函数时没有转达相应的参数值,函数将利用默认值。默认参数使得函数更加机动,淘汰了调用时的参数数目。
示例:默认参数- def greet(name="Guest"):
- """ 打印问候语,如果没有提供名字,默认为 'Guest'。"""
- print(f"Hello, {name}!")
- greet() # 输出:Hello, Guest!
- greet("Alice") # 输出:Hello, Alice!
复制代码 可变参数
可变参数允许函数吸收不定命目的参数。Python 支持两种范例的可变参数:位置参数和关键字参数。
- 位置参数 (*args):
- 利用 *args 可以吸收不定命目的位置参数,这些参数会被打包成一个元组。
- def print_numbers(*args):
- """ 打印所有传入的数字。"""
- for number in args:
- print(number)
- print_numbers(1, 2, 3, 4) # 输出:1 2 3 4
复制代码
- 关键字参数 (**kwargs):
- 利用 **kwargs 可以吸收不定命目的关键字参数,这些参数会被打包成一个字典。
- def print_info(**kwargs):
- """ 打印所有传入的关键字参数。"""
- for key, value in kwargs.items():
- print(f"{key}: {value}")
- print_info(name="Alice", age=25, city="New York")
- # 输出:name: Alice age: 25 city: New York
复制代码
函数的高级用法
如今我们通过一个具体的示例来展示怎样利用函数的高级用法。假设我们须要编写一个步调,该步调可以盘算多个数的匀称值,并支持可选的关键字参数来指定是否返回结果的四舍五入值。
示例代码:- def calculate_average(*numbers, round_result=False):
- """ 计算多个数的平均值,并支持四舍五入选项。"""
- if not numbers:
- return None
-
- total = sum(numbers)
- average = total / len(numbers)
-
- if round_result:
- average = round(average)
-
- return average
- # 主程序
- def main():
- # 计算平均值
- avg1 = calculate_average(10, 20, 30)
- print(f"平均值(不四舍五入): {avg1}") # 输出:平均值(不四舍五入): 20.0
-
- # 计算平均值并四舍五入
- avg2 = calculate_average(10, 20, 30, round_result=True)
- print(f"平均值(四舍五入): {avg2}") # 输出:平均值(四舍五入): 20
-
- # 没有传入任何数字
- avg3 = calculate_average()
- print(f"没有数字时的平均值: {avg3}") # 输出:没有数字时的平均值: None
- # 运行主程序
- if __name__ == "__main__":
- main()
复制代码 示例分析
- 界说函数 calculate_average:
- 该函数继承不定命目的位置参数 *numbers,并支持一个可选的关键字参数 round_result。
- 假如没有传入任何数字,函数返回 None。
- 盘算全部传入数字的总和和匀称值。
- 假如 round_result 为 True,则对匀称值举行四舍五入。
- 末了返回盘算结果。
- 主步调 main:
- 调用 calculate_average 函数,盘算不恻隐况下的匀称值,并打印结果。
小结
通过本课时的学习,你已经把握了 Python 中函数的高级应用,包罗默认参数和可变参数,并通过一个具体的示例展示了怎样利用这些高级特性来办理实际题目。明白这些高级特性可以使你的函数更加机动和强盛,进步代码的可读性和可维护性。
|