5.1 函数基础与函数调用
函数(function)是一段可重复使用的代码,用来完成一个明确任务。你已经使用过很多内置函数(built-in function),例如 print()、len()、input()。现在我们开始学习如何定义自己的函数。
定义函数
函数定义使用 def。函数可以接收输入,也可以返回输出。括号里的 num1 和 num2 是参数(parameter),调用函数时传进去的 4、12 这类具体值叫实参(argument)。
python
def larger(num1, num2):
if num1 > num2:
return num1
else:
return num2
print(larger(4, 12))
print(larger(54, 33))运行结果:
text
12
54return 的作用是把结果交回给调用者(caller)。函数执行到 return 后,本次函数调用就结束了。
正在加载概念检查...
正在加载本节练习...
正在加载本节练习...
没有返回值的函数
有些函数只负责执行动作,不需要返回结果。例如打印一个简单棋盘:
python
def print_board():
for i in range(3):
for j in range(2):
print(" |", end='')
print()
if i < 2:
print("---+---+---")
print_board()运行结果:
text
| |
---+---+---
| |
---+---+---
| |这类函数没有显式写 return。Python 会默认返回 None,表示“没有有意义的返回值”。
函数调用
函数调用(function call)发生时,程序会暂时离开当前位置,进入被调用函数的函数体(function body)内部执行。函数结束后,程序再回到原来的位置继续执行。这个“进入与返回”的过程可以用调用栈(call stack)理解。
正在加载交互实验...
下面的程序用函数拆分“两点间距离”的计算。
python
import math
def square(x):
return x ** 2
def distance(point1, point2):
x1, y1 = point1
x2, y2 = point2
return math.sqrt(square(x1 - x2) + square(y1 - y2))
def read_point(message):
raw = input(message)
x_text, y_text = raw.split(",")
return float(x_text), float(y_text)
x1, y1 = read_point("请输入第一个点,例如 0, 0:")
x2, y2 = read_point("请输入第二个点,例如 3, 4:")
print("距离:%.1f" % distance((x1, y1), (x2, y2)))一次可能的运行结果:
text
请输入第一个点,例如 0, 0:0, 0
请输入第二个点,例如 3, 4:3, 4
距离:5.0正在加载概念检查...
main()
很多语言使用 main() 作为程序入口(entry point)。Python 不强制要求 main(),但在稍大的程序里使用 main() 可以让结构更清晰。
python
def main():
print("程序开始")
if __name__ == "__main__":
main()当文件被直接执行时,__name__ 的值是 "__main__",因此 main() 会被调用。
正在加载本节练习...