1.函数的创建
# 加法函数
def calc(a,b):
c = a+b
return c
print(calc(10,20)) # 30 a=10,b=20
# 也可以这样写
print(calc(b=10, a=20)) # 30 a=20,b=10
2.可变对象和不可变对象做参数
def fun(a,b):
a = 100
b.append(10)
n1 = 10
n2 = [10, 20, 30]
print(n1)
print(n2)
fun(n1, n2)
print(n1)
print(n2)
'''
10
[10, 20, 30]
10
[10, 20, 30, 10]
结论:不可变对象在函数中更改不影响该对象,而可变对象在函数中改变会影响该对象
'''
3.函数的返回值
def fun(num):
odd = []
even = []
for i in num:
if i%2:
odd.append(i)
else:
even.append(i)
return odd, even
num = [1, 2, 3, 4, 5, 6, 7]
print(fun(num))
''''
([1, 3, 5, 7], [2, 4, 6])
如果无返回值,return省略不写
如果返回值是1个,返回原值
如果返回值是多个,返回元组
'''
4.参数的默认值
def fun(a,b=10): # 给了b默认值10
print(a, b)
fun(100) # 100 10
fun(20, 30) # 20 30
5.个数可变参数
# 个数可变的位置参数(位置参数传递方式),只能一个
def fun(*a):
print(a)
fun(10)
fun(10, 20)
fun(10, 20, 30)
''''
(10,)
(10, 20)
(10, 20, 30)
'''
# 可变的关键字参数(关键字参数传递方式),只能一个
def fun1(**a):
print(a)
fun1(a=10)
fun1(a=10, b=20)
fun1(a=10, b=20, c=30)
''''
{'a': 10}
{'a': 10, 'b': 20}
{'a': 10, 'b': 20, 'c': 30}
'''
6.传入列表或字典
def fun(a, b, c):
print('a=', a)
print('b=', b)
print('c=', c)
lst = [10, 20, 30]
fun(*lst)
''''
a= 10
b= 20
c= 30
'''
dic = {'a':10, 'b':20, 'c':30}
fun(**dic)
'''
a= 10
b= 20
c= 30
'''
7.强制必须使用关键字参数传递
def fun(a, *, b, c): # *号后的参数必须使用关键字实参传递
print('a=', a)
print('b=', b)
print('c=', c)
fun(10, b=20, c=30)
8.变量的作用域
# global定义为全局变量
def fun():
global age
age = 20
print(age)
fun() # 20
print(age) # 20