函数
把一组步骤包起来,写一次、用多次。
它是什么
函数 像食谱。 步骤写一次。 以后按名字做很多遍。
程序变长以后,同一段话会反复出现。 打包起来,名字就是按钮。 按下按钮,整组步骤就跑一遍。
定义用 def。
名字后面加括号和冒号。
里面的句子要 缩进。
def say_hello():
print("你好")
say_hello()上面是定义。 下面是调用。 还没定义就调用,会报错。
名字从哪来
函数的英文是 function。
数学课上,函数是一台「放进材料、得到结果」的机器。
f(x) = x + 1:放进 3,得到 4。
编程借用了这个词。
def 是 define 的缩写,意思是「定义」。
return 来自英语「送回」,也是 C 语言家族里的常用词。
Python 自己还准备了许多现成帮手,见 内置函数。
print、len、abs 都是已经定义好的函数。
你也可以用 def 做自己的。
函数名也用小写加下划线。 和 变量 一样。
它怎么工作
参数
括号里的名字叫参数。 它表示要传进去的材料。 调用时放进去的值叫实参。
def greet(name):
print("你好,", name)
greet("小明")name 的意义是:这位朋友叫什么。
名字要好懂。
可以有多个参数。 顺序一般要对应。
无参函数:括号空着。
它不需要额外材料。
但括号仍要写,调用时也要写 ()。
没有括号,只是提到这个函数,不会跑。
返回值
print 给眼睛看。
return 把结果送回给程序。
def add(a, b):
return a + b
s = add(3, 5)s 是 8。
return 一执行,函数就结束。
后面的句子不会再跑。
没有 return 时,常常得到 None。
意思是没什么值。
参数是进去的材料。 返回值是出来的成品。 中间是加工步骤。
函数内部的变量,外面常常拿不到。 要想把结果带出去,请用 return。
函数也可以调用别的函数。 一步套一步,和 嵌套 的想法相近,但靠的是名字,不是缩进。
生活里在哪里
- 食谱「番茄炒蛋」:材料不同,步骤同一份。
- 洗衣机的「开始」键:里面是一串固定动作。
- 学校广播操:口令一喊,全场做同一套。
- 计算器的平方键:放进一个数,送回它的平方。
- 自动售货:选编号,机器执行取货步骤。
生活里把重复劳动做成按钮,就是函数的精神。
和相近概念的差别
函数是打包步骤。 循环 是重复步骤。 可以在函数里写循环,也可以在循环里调用函数。
内置函数不用你写 def。
自己的函数必须先定义。
print 改变屏幕上的样子,给人看。
return 把结果送回给程序,给后面用。
只 print 不 return,外面用变量去接,常常接到 None。
算法是解决问题的步骤说明。 函数是把步骤装进程序的一种容器。 见 算法。
常见误会
误会 1:只定义不调用,以为会自己跑。
食谱写在本子上,不会自动出菜。 要喊名字,加上括号。
误会 2:把 print 当成 return。
外面拿不到值。 屏幕上看见了,不等于程序收到了。
误会 3:参数个数对不上。
定义要两个,调用却给一个,会报 TypeError。
误会 4:函数名用了数字开头。
和变量一样,名字不能以数字开头。
误会 5:忘记括号,写成 say_hello。
那只是提到函数这个人。
加上 () 才是请它干活。
想知道更多
- 书:潘洪波《小学生 Python 趣味编程》(把重复步骤收成一个名字,体会「写一次、用多次」)。
- 书:埃里克·马瑟斯《Python 编程:从入门到实践》(函数章把参数和返回值讲得很清楚,可和家长一起读)。
未登录时不会保存学习进度