笔记
基础概念
python包 packages.py
- 项目:
- 包1
- xx1.py
- xx2.py
- …
- 包2
- xx1.py
- xx2.py
- …
- 包1
函数.py
def 函数名([参数, 参数, ]):
函数体
调试
- 先打断点
- shift + F9
- step over (F8)
- step into F7
- step into mycode
- force step into
- stp out
- run to cursor
- evalute expression
书写规范 PEP8
判断类型
type 只能找出是 什么类型,不好判断
isinstance()
isinstance(3, int)
函数 可变参数
def add(*args):
print(args)
# 参数个数不确定
add() # 输出空 元组 ()
add(1)
add('a', 2, 'love', [1, 2])
‘*’ 拆装包!
*args = # 底层准备好容器(), 等待装包
- 可变参数 和 固定参数 同时存在:
- 可变参数往后放, 类比 元组 * 赋值
def add(name, age, *args):
s = int(0)
for i in args:
s += i
print(name, 'age is', age, 'sum is', s)
add('Jam', 23, 1, 2, 3, 4)
带有 默认值 参数
def func(a,b,c=0):
pass
关键字参数
def func(**kwargs): # key-word argument
# 函数 以字典形式 存储
pass
func()
func(a=1, b=2, c=3) # 必须 k= w 格式赋值
也就是说:一颗星 * 默认生成元组来存储
两颗星号 ** 默认 字典存储
- 如何传入字典: 拆包 - 装包
func({'a': 'py', 'b': 'c++'})
- 为什么报错:
- 因为没有按照 k=v 格式传入
func(**{'a': 'py', 'b': 'c++'})
-
为什么不报错:
- 首先字典的拆包: k:v
- 然后 传入 装包
-
总汇
def bb(a, b, *c, **d):
print(a, b, c, d)
函数 返回值
- return
- 有返回值,必须有接收赋值
- 多个接收
def func_r():
return 1,2,3
a, b, c = func_r()
全局变量
不可变的 全局变量 在函数里
可直接获取,但是 修改 需声明
(可变元素的修改不需要)
def func():
global xxx