定义与调用:写你的第一个函数
最简单的函数
加载代码编辑器中……
| Python | JavaScript | |
|---|---|---|
| 关键字 | def | function |
| 函数体 | 缩进 | 大括号 {} |
Python 用 def(define 的缩写),JS 用完整的 function。Python 程序员又省了几个字 😏
返回值
函数不只能"做事",还能"给你一个结果":
加载代码编辑器中……
| Python | JavaScript | |
|---|---|---|
| 无返回值时 | 返回 None | 返回 undefined |
多个返回值
加载代码编辑器中……
Python 可以直接 return a, b(本质上返回元组),JS 需要返回数组 [a, b] 再解构。
默认参数
加载代码编辑器中……
两种语言的默认参数写法几乎一样!终于有个一模一样的了。
关键字参数 vs 对象参数
当函数参数很多的时候,记住顺序很痛苦。两种语言有不同的解决方案:
加载代码编辑器中……
| Python | JavaScript | |
|---|---|---|
| 方式 | 关键字参数(内置语法) | 对象解构(模式) |
| 语法 | func(key=value) | func({ key: value }) |
Python 的关键字参数是语言内置的,JS 是社区用对象解构模拟的。效果差不多,但 Python 更优雅。
可变参数
有时你不知道会收到多少参数:
加载代码编辑器中……
| Python | JavaScript | |
|---|---|---|
| 收集位置参数 | *args | ...args |
| 收集关键字参数 | **kwargs | 用对象代替 |
🏋️AI 练习
写一个"计算器"函数,接受两个数字和一个运算符("add", "sub", "mul", "div"),返回计算结果。
- 运算符用默认参数,默认为 "add"
- 除法要处理除以 0 的情况
用 Python 和 JS 各写一版。
小结
| 概念 | Python | JavaScript |
|---|---|---|
| 定义函数 | def func(): | function func() {} |
| 无返回值 | 返回 None | 返回 undefined |
| 多返回值 | return a, b | return [a, b] |
| 默认参数 | def f(x=1): | function f(x = 1) {} |
| 可变参数 | *args | ...args |
| 关键字参数 | f(key=val) 内置 | f({ key: val }) 模拟 |