当前位置:首页>python>Python入门速成8:函数

Python入门速成8:函数

  • 2026-09-02 18:53:52
Python入门速成8:函数

Python 基础入门(第八篇):函数——让代码重用更优雅

函数就是把一段有特定功能的代码打包,起个名字,需要时直接“调用”即可。函数还能接受输入(参数),返回结果(返回值)。

1. 定义与调用函数

用 def 关键字定义函数,后面跟函数名和括号:

def say_hello():

print("Hello!")# 函数体,注意缩进

# 调用函数

say_hello()# 输出 Hello!

函数名遵循变量命名规则,建议用小写字母加下划线,如 calculate_average。

2. 参数与返回值

参数让函数处理不同的数据,返回值让函数输出结果给调用者。

def add(a, b):

result = a + b

return result# 返回结果

sum = add(3, 5)# 调用时传入3和5

print(sum)# 输出 8

如果没有 return,函数默认返回 None。

3. 参数类型详解

3.1 位置参数

按位置传递,数量和顺序必须匹配:

def info(name, age):

print(f"{name} {age}岁")

info("小明", 18)# 正确

# info(18, "小明") # 错误,类型错位

3.2 默认参数

给参数指定默认值,调用时可以省略:

def greet(name, greeting="你好"):

print(f"{greeting},{name}")

greet("小红")# 你好,小红

greet("小红", "早上好")# 早上好,小红

默认参数必须放在位置参数后面。

3.3 关键字参数

调用时写明参数名,可以改变顺序:

info(age=18, name="小明")# 输出:小明 18岁

4. 变量的作用域

在函数内部赋值的变量是局部变量,外部无法访问;函数外部的变量是全局变量,函数内可以读取但不能直接修改(除非用 global 声明,但不推荐滥用)。

x = 10# 全局变量

def test():

y = 5# 局部变量

print(x)# 可以读取全局变量

# x = 20# 这会在函数内创建一个新的局部变量,不会修改全局的x

test()

# print(y)# 报错,y不存在

5. 小实战:计算器函数

把常用运算封装成函数,方便重复使用:

def add(a, b):

return a + b

def subtract(a, b):

return a - b

def multiply(a, b):

return a * b

def divide(a, b):

if b == 0:

return "除数不能为0"

return a / b

# 调用演示

print(add(10, 5))# 15

print(divide(10, 0))# 除数不能为0

# 用一个字典映射运算符到函数

operations = {

"+": add,

"-": subtract,

"*": multiply,

"/": divide

}

op = input("输入运算符(+ - * /):")

a = float(input("第一个数:"))

b = float(input("第二个数:"))

result = operations[op](a, b)

print("结果:", result)

这个例子展示了函数作为“第一类对象”的特性——可以存储在变量或字典中,使代码非常灵活。

6. 常见错误

忘记调用函数:只写 add 不写括号,不会执行函数体,只是引用函数对象。

参数数量不匹配:调用时多传或少传参数都会报错。

返回值未使用:add(3,5) 返回了8但没有赋值给任何变量,8就被丢弃了。

函数内部修改全局变量陷阱:如果函数内部有 x = x + 1,Python 会认为左边是局部变量,右边引用未定义的局部变量而报错。要修改全局变量需用 global x,但更推荐将需要修改的值作为参数传入并返回新值。

相关推荐

Python速成7|数据类型:字典

Python基础入门6|字符串:文本处理的利器

End

最新文章

随机文章