python函数语句
时间: 2025-02-22 16:25:40 浏览: 38
### Python 函数定义与使用教程
#### 定义函数
在 Python 中,`def` 关键字用于定义函数。函数可以接受参数并返回值。通过这种方式,能够创建可重用的代码块来执行特定的任务。
```python
def greet(name):
"""简单的问候函数"""
message = f'Hello, {name}!'
return message
```
此段代码展示了如何定义一个名为 `greet` 的简单函数[^1]。
#### 调用函数
一旦定义了函数,就可以通过其名称加上括号来进行调用了。如果该函数有参数,则需提供相应的实参。
```python
result = greet('Alice')
print(result) # 输出: Hello, Alice!
```
上述例子说明了怎样调用带有单个字符串参数的 `greet()` 函数,并打印出返回的结果。
#### 参数传递方式
Python 支持多种类型的参数传递方法,包括位置参数、关键字参数以及默认参数等。
- **位置参数**: 按照顺序传入实际参数。
- **关键字参数**: 使用形如 key=value 形式的参数指定输入值。
- **默认参数**: 如果未给出某些参数的具体数值,默认采用预设值。
```python
def describe_pet(animal_type='dog', pet_name=''):
info = f'I have a {animal_type}. Its name is {pet_name}.'
return info
# 不同形式的参数传递
print(describe_pet('hamster', 'harry')) # 所有参数都作为位置参数
print(describe_pet(pet_name='willie')) # 单独设置关键字参数
print(describe_pet(pet_name='whiskers', animal_type='cat')) # 同时设定两个关键字参数
```
这些实例解释了几种不同的参数传递机制及其应用场景。
#### 返回多个值
Python 函数可以通过元组解构的方式轻松地一次返回多个值。
```python
def get_formatted_name(first_name, last_name):
full_name = f'{first_name.title()} {last_name.title()}'
age = None # 假定这里有一个获取年龄的过程
return full_name, age
formatted_name, person_age = get_formatted_name('john', 'doe')
print(f'Name: {formatted_name}, Age: {person_age}')
```
这段程序演示了一个函数同时返回姓名和年龄两种不同类型的数据结构。
#### 局部变量与全局变量的作用范围
当在一个函数内部声明一个新的变量名时,默认情况下它只在这个局部范围内有效;而要修改外部已存在的全局变量,则需要用到 `global` 或者 `nonlocal` 关键词。
```python
count = 0 # 全局变量 count
def update_counter():
global count # 明确指出要操作的是外面那个叫 "count" 的全局对象
count += 1
update_counter()
print(count) # 结果应该是 1
```
此处的例子强调了如何利用 `global` 来改变作用于整个脚本级别的变量状态[^3]。
对于嵌套函数来说,还可以借助 `nonlocal` 来访问父级函数内的局部命名空间中的名字:
```python
def outer_function(x):
y = [] # 外层函数里的局部列表 y
def inner_function(z):
nonlocal y # 表明即将处理的就是外边的那个叫做 “y” 的东西
y.append(z)
inner_function(789)
return y
final_result = outer_function([123])
print(final_result) # 应该会得到 [123, 789]
```
以上片段进一步探讨了更复杂的多层封装下不同层次之间的交互逻辑[^4]。
阅读全文
相关推荐


















