
本文共 2552 字,大约阅读时间需要 8 分钟。
Python自定义函数及参数类型详解
在Python编程中,自定义函数是工具箱中不可或缺的一部分。它不仅可以帮助我们简化代码的复杂性,还能使代码更加易读和可维护。以下将从基础到高级探讨Python自定义函数的实现方法及其参数类型。
一、函数的基本定义
1. lambda定义匿名函数
匿名函数通过lambda关键字轻松实现,适用于简短的功能逻辑。语法如下:
lambda parameters: expression
如上语法中:
- lambda 是匿名函数的起始关键字。
- parameters 是函数的可能参数,多个参数用逗号分隔。
- function expression 是具体的逻辑表达式。
示例:统计列表中每个元素的频次
list6 = ['A', 'A', 'B', 'A', 'A', 'B', 'C', 'B', 'C', 'B', 'B', 'D', 'C']dict3 = {}for i in set(list6): dict3[i] = list6.count(i)key_value = list(dict3.items())key_value.sort()key_value.sort(key=lambda x: x[1], reverse=True)
2. def构造有名称的自定义函数
def关键字用于构建中规中矩的自定义函数,结构为:
def function_name(parameters): ... return result
如上语法中:
- def 是define的缩写,用于自定义函数。
- function_name 是函数的名称。
- parameters 是函数相应的输入参数。
- return用于返回函数计算结果。
实战示例:猜数字游戏
def game(min, max): import random number = random.randint(min, max) while True: guess = float(input('请在%d到%d之间猜一个数字: ' % (min, max))) if guess < number: min = guess print('不好意思,你猜的数偏小了!请在%d到%d之间猜一个数!' % (min, max)) elif guess > number: max = guess print('不好意思,你猜的数偏大了!请在%d到%d之间猜一个数!' % (min, max)) else: print('恭喜你猜对了!') print('游戏结束!') break# 调用函数game(10, 20)
2. 自定义函数的参数类型
在使用自定义函数时,参数的类型和约束能决定函数的行为和灵活性。主要参数类型包括:
1. 必选参数
必选参数是调用自定义函数时必须提供的参数,否则函数调用将报错。例如:
def game(min, max): ...
缺少max参数时,会出现如下错误:
TypeError: game() missing 1 required positional argument: 'max'
2. 默认参数
默认参数在定义函数时就已经赋予了初值,在调用时可不需要传递。语法:
def function_name(param1=params1, param2=params2):
示例:计算1到n的p次方和
def square_sum(n, p=2): result = sum([i**p for i in range(1, n+1)]) return (n, p, result)# 调用函数print(square_sum(200))print(square_sum(200, 3))
3. 可变参数
可变参数用于接收任意数量的实参,适用于动态参数场景。语法:
def function(*args): ...
示例:任意个数的数据求和
def adds(*args): sum_val = sum(args) return sum_val# 调用函数print(adds(10, 13, 7, 8, 2))print(adds(7, 10, 23, 44, 65, 12, 17))
4. 关键字参数
关键字参数允许传递特定参数名和值,适用于可选参数和命名位置传递。语法:
def function(key1=value1, key2=value2):
示例:电商信息收集
def info_collection(tel, birthday, **kwargs): user_info = {'tel': tel, 'birthday': birthday} user_info.update(kwargs) return user_info# 调用函数print(info_collection(13612345678, '1990-01-01', nickname='月亮', gender='女', edu='硕士', income=15000, add='上海市浦东新区', interest=['游泳', '唱歌', '看电影']))
总结语
自定义函数是Python编程中极其强大的功能之一。通过lambda匿名函数和def有名称函数,我们可以为不同的需求构建专门的处理逻辑。了解自定义函数的参数类型(必选参数、默认参数、可变参数和关键字参数)能够帮助我们更灵活地处理各种编程场景。无论是guess数字游戏
,还是相关参数的灵活处理,自定义函数都展现出强大的实用性和可扩展性。在实际开发中,合理使用自定义函数能极大提升代码的可维护性和可读性。
发表评论
最新留言
关于作者
