初识函数------了解函数的定义、函数的参数、函数的返回值、说明文档的书写、函数的嵌套使用、变量的作用域(全局变量与局部变量)
文章目录
- 一、什么是函数?
- 二、函数定义与调用
- 2.1 基本语法
- 2.2 示例演示
- 三、函数参数详解
- 3.1 位置参数
- 3.2 默认参数
- 3.3 可变参数
- 3.4 关键字参数
- 四、返回值与文档说明
- 4.1 返回多个值
- 4.2 编写文档字符串
- 五、函数嵌套与作用域
- 5.1 嵌套函数示例
- 5.2 变量作用域
- 5.3 global关键字
一、什么是函数?
函数是组织好的、可重复使用的代码段,用于实现单一或相关联功能的封装。如同生活中的工具,函数能让我们避免重复造轮子,提高开发效率和代码可维护性。
二、函数定义与调用
2.1 基本语法
def 函数名(参数):"""函数说明文档"""函数体return 返回值
2.2 示例演示
定义问候函数
def greet(name):"""显示简单的问候语"""print(f"Hello, {name}!")
调用函数
greet("Alice") # 输出:Hello, Alice!
greet("Bob") # 输出:Hello, Bob!
三、函数参数详解
3.1 位置参数
def calculate_area(length, width):return length * widthprint(calculate_area(5, 3)) # 输出:15
3.2 默认参数
def power(base, exponent=2):return base ** exponentprint(power(3)) # 输出:9
print(power(2, 4)) # 输出:16
3.3 可变参数
def sum_all(*numbers):total = 0for n in numbers:total += nreturn totalprint(sum_all(1, 2, 3)) # 输出:6
3.4 关键字参数
def build_profile(**info):profile = {}for key, value in info.items():profile[key] = valuereturn profileuser = build_profile(name="Alice", age=25, occupation="Engineer")
print(user) # 输出:{'name': 'Alice', 'age': 25, 'occupation': 'Engineer'}
四、返回值与文档说明
4.1 返回多个值
def calculate(a, b):return a+b, a-b, a*bsum_result, sub_result, mul_result = calculate(8, 5)
4.2 编写文档字符串
def quadratic(a, b, c):"""解一元二次方程参数:a: 二次项系数b: 一次项系数c: 常数项返回:方程的实数解元组"""discriminant = b**2 - 4*a*cx1 = (-b + discriminant**0.5) / (2*a)x2 = (-b - discriminant**0.5) / (2*a)return x1, x2
五、函数嵌套与作用域
5.1 嵌套函数示例
def outer():print("外层函数被调用")def inner():print("内层函数被调用")inner()outer()
输出:
外层函数被调用
内层函数被调用
5.2 变量作用域
global_var = "全局变量"def test_scope():local_var = "局部变量"print(global_var) # 可以访问全局变量test_scope()
print(local_var) # 报错:NameError
5.3 global关键字
count = 0def increment():global countcount += 1increment()
print(count) # 输出:1
六、综合案例
def temperature_converter(value, unit):"""温度单位转换器参数:value: 温度值unit: 原始单位('C'或'F')返回:转换后的温度值(保留两位小数)"""if unit == 'C':converted = value * 9/5 + 32return round(converted, 2)elif unit == 'F':converted = (value - 32) * 5/9return round(converted, 2)else:raise ValueError("无效的温度单位")print(temperature_converter(37, 'C')) # 输出:98.6
print(temperature_converter(100, 'F')) # 输出:37.78