Mosh的课程网址
Arguments
1 2 3 4 5 6 7
| def greet(first_name, last_name): print(f"Hi {first_name} {last_name}") print("Welcome aboard")
greet("Stone", "Purple") greet("Stephen", "Curry")
|
Types of Functions
1 2
| 👉 1 - Perform a task 👉 2 - Return a value
|
1 2 3 4 5 6 7 8 9 10 11 12 13
| def greet(name): """ Type 1 function """ print(f"Hi {name}")
def get_greeting(name): """ Type 2 function """ return f"Hi {name}"
message = get_greeting("Stone") file = open("content.txt", "w") file.write(message)
|
python return None by default.
输出结果:
Types of Arguments
Keyword Arguments
1 2 3 4 5 6
| def increment(number, by): return number + by
print(increment(2, by=1))
|
Default Arguments
1 2 3 4 5
| def increment(number, by=1): return number + by
print(increment(2))
|
所有 optional arguments 应该在无 default value 的 argument 后面
*args
输入参数数量可变(存成一个tuple,且iterable)
1 2 3 4 5 6 7 8 9
| def multiply(*numbers): total = 1 for number in numbers: total *= number return total
print(multiply(2, 3, 4, 5)) print(multiply(4, 5, 6, 2, 5))
|
输出
**args
打包 keyword arguments 成 dict 给函数体调用
1 2 3 4 5 6
| def save_user(**user): print(user) print(user["name"])
save_user(id=1, name="John", age=22)
|
输出:
1 2
| {'id': 1, 'name': 'John', 'age': 22} John
|
Scope
局部变量局部可见
全局变量全局可见
1 2 3 4 5 6 7 8 9
| message = "a"
def greet(name): message = "b"
greet("Stone") print(message)
|
输出结果:
因为 Python 将 greet 函数内的 message 视为 local variable,尽管它与全局变量同名。
Debugging
1 2 3 4 5
| 👉 F9 -- 设置断点 👉 F5 -- 开始调试 👉 F10 -- 下一步 👉 F11 -- 进入 function 内单步 debug 👉 Shift+F11 -- 退出 function 内单步 debug
|
VSCode Tricks (Windows)
1 2 3 4 5 6 7 8
| 👉 Home 光标移到行首 👉 End 光标移到行尾 👉 Ctrl+Home 光标移到文件头 👉 Ctrl+End 光标移到文件尾 👉 Ctrl+L 选择当前行 👉 Alt+↑or↓ 代码上移或下移 👉 Shift+Alt+↓ 选中某(几)行后用此组合键复制粘贴 👉 Ctrl+/ 多行注释
|