函数
def sayhi(name):
print('Hi, i am %s' % name)
sayhi('pretty')
sayhi('girl')
x = 2
y = 3
def calc(a, b): # a b 形参,占位符
return a**b
c = calc(x, y) # x y 实参
print(c)
- 实参: 有确定值的参数,所有的数据类型都可以被当作参数传递给函数
- 形参: 只有在被调用时才分配内存,调用结束后立刻释放内存,值仅在函数内有效(局部变量)
- 形参的作用域只在当前函数内部
- 局部变量:作用域只在当前函数内部,外部变量默认不能被函数内部修改,只能引用
- 如果想在函数里修改全局变量,必须global,但是强烈建议不要这么用
- 函数内部是可以修改列表、字典、集合、类、字符串
def info():
n.append('a new info')
n1['c'] = 3
n = ['hehe', 'aaaa']
n1 = {'a':1, 'b':2}
info()
# print(n, n1)
def re_use():
n.append('bbb')
re_use()
print(n)
输出
['hehe', 'aaaa', 'a new info', 'bbb']
def stu(name, age, lession, price='1000',*args, **kwargs):
print('姓名:',name)
print('年龄:',age)
print('课程:',lession)
print('价格:',price)
print(args, kwargs)
print('-'*30)
- 默认参数
stu('小花', 22, 'python')
输出
姓名: 小花
年龄: 22
课程: python
价格: 1000
() {}
- 关键参数,必须放在位置参数后面
stu('玛丽',28,price='2000', lession='linux')
输出
姓名: 玛丽
年龄: 28
课程: linux
价格: 2000
() {}
- 非固定参数 *args **kwargs
- *args = () 打印元祖,以位置参数的形式传入
- **kwargs = {} 指定变量,打印字典,以关键参数形式传入
stu('杰克',21,'c++','100','IT','iteye', sex='male')
输出
姓名: 杰克
年龄: 21
课程: c++
价格: 100
('IT', 'iteye') {'sex': 'male'}