当前位置: 首页 > news >正文

Python学习(3) ----- Python的函数定义及其使用

Python 中函数是组织好的、可重复使用的代码块,用于实现单一或相关联的功能。下面是函数定义和使用的完整说明:


📌 一、函数定义语法

def 函数名(参数1, 参数2=默认值, *args, **kwargs):"""函数说明文档"""函数体return 返回值

✅ 二、简单示例

def greet(name):return f"Hello, {name}!"result = greet("Alice")
print(result)  # 输出: Hello, Alice!

🔸 三、参数类型详解

1. 位置参数

def add(a, b):return a + bprint(add(3, 5))  # 输出 8

2. 默认参数

def greet(name, message="Hi"):return f"{message}, {name}!"print(greet("Tom"))            # Hi, Tom!
print(greet("Tom", "Hello"))   # Hello, Tom!

3. 可变参数 (*args)

args是可以自己命名的,这里的类型是元组(tuple)
tuple的特点
在这里插入图片描述

def sum_all(*args):return sum(args)print(sum_all(1, 2, 3))  # 6

4. 关键字参数 (**kwargs)

适用于字典类型的入参,kwargs是可以自己命名的,这里的类型是字典(dict)

def show_info(**kwargs):for key, value in kwargs.items():print(f"{key}: {value}")show_info(name="Alice", age=30)
# 输出:
# name: Alice
# age: 30

🔁 四、返回值

单值返回:

def square(x):return x * x

多值返回(返回元组):

def get_user():return "Tom", 25name, age = get_user()

♻️ 五、函数作为变量传递

def say_hello():print("Hello")greet = say_hello
greet()  # Hello

📖 六、带文档的函数

def square(x):"""返回数字的平方"""return x * xprint(square.__doc__)  # 返回函数说明文档

✅ 七、匿名函数(lambda)

square = lambda x: x * x
print(square(5))  # 25

常用于排序、过滤等场景:

nums = [3, 1, 2]
nums.sort(key=lambda x: -x)

🧠 八、函数的好习惯

  • 使用明确的函数名和参数名
  • 编写函数文档字符串("""说明文字"""
  • 尽量保持函数短小和单一职责

下面是几道精选的 Python 函数练习题,每道题都有题目说明提示,适合巩固函数的定义与使用。


🧪 练习题 1:写一个求最大值的函数

题目:编写一个函数 get_max(a, b),返回两个数中的最大值。

def get_max(a, b):# TODO: 返回较大的那个数passprint(get_max(10, 20))  # 应该输出 20

提示:使用 if...else 判断大小。


🧪 练习题 2:列表求和(可变参数)

题目:编写一个函数 sum_all(*args),接收任意数量的参数,并返回它们的总和。

def sum_all(*args):# TODO: 返回所有参数的总和passprint(sum_all(1, 2, 3))        # 输出 6
print(sum_all(5, 10, 15, 20))  # 输出 50

提示:使用 sum() 函数或 for 循环遍历 args


🧪 练习题 3:计算 BMI 指数

题目:写一个函数 bmi(weight, height),根据体重(kg)和身高(米)计算 BMI = 体重 / 身高²。

def bmi(weight, height):# TODO: 返回 BMI 指数passprint(bmi(60, 1.7))  # 应该输出大约 20.76

提示:BMI 的单位是 kg/m²,保留小数可用 round(bmi, 2)


🧪 练习题 4:欢迎语(带默认参数)

题目:定义一个函数 greet(name, message="Hello"),默认打招呼用 “Hello”,可以自定义问候语。

def greet(name, message="Hello"):# TODO: 打印 message, name!passgreet("Tom")          # Hello, Tom!
greet("Alice", "Hi")  # Hi, Alice!

🧪 练习题 5:分析用户信息(关键字参数)

题目:定义函数 print_info(**kwargs),可以接受任意键值对,并打印它们。
kwargs也可以叫其他名字主要是前面有**标识

def print_info(**kwargs):# TODO: 遍历打印每一个 key: valuepassprint_info(name="Tom", age=22, city="Shanghai")

提示:用 for key, value in kwargs.items() 遍历。


可以尝试把这些函数写进一个 .py 文件里,比如 my_functions.py

python my_functions.py

相关文章:

  • 去除ai写作痕迹的软件有哪些
  • 打卡第31天:模块和库的导入
  • 生成式引擎的认知霸权:为什么传统内容失效?
  • 【超详细教程】零基础本地部署DeepSeek-Coder-v2 16B!Ollama+GPU加速,100%跑通!
  • 政策支持下的PLM国产化浪潮:国产PLM的最新应用、前沿技术、反超路径
  • 02-BTC-密码学原理 对hash算法如果出现漏洞的思考
  • Linux线程机制揭秘:从内核实现到用户态编程(二)
  • ROC和生存曲线的绘制-spss
  • C语言中:递归问题的深入研究
  • 华南会议|AI驱动仿真未来 2025 Altair区域技术交流会华南站,报名开启!
  • C 语言学习笔记(结构体2)
  • 相机Camera日志分析之二十二:高通相机Camx 基于预览1帧的ConfigureStreams重要完整日志
  • libevent的粘包笔记
  • Python编程6——面向对象编程1
  • Java基础 Day23
  • 宏的高级应用 ——一种 C 语言的元编程技巧(X-Macro)
  • ArgoDB表类型及常用命令
  • Cancer Cell|从临床病例到AI空间组学 | 空间生物标志物如何精准预测HER2阳性乳腺癌ADC疗效?
  • v1.05 支付宝 绑定时写Nand flash卡死问题
  • ⭐️⭐️⭐️ 免费的AI Clouder认证 ⭐️⭐️⭐️ 第四弹【课时1:课程概览】for「大模型Clouder认证:基于通义灵码实现高效AI编码」
  • 珠海做网站的公司介绍/百度客服人工电话24小时
  • 信息作业网站下载/北京网站营销seo方案
  • 做情书直接点网站/东莞网络推广营销
  • 吉林沈阳网站建设/黑科技引流推广神器
  • 怎么制作微信小程序商城/北京seo优化wyhseo
  • 网站广告位/百度站长工具综合查询