Python基础:函数
一、调用
def info_print():
print('Hello Python')
info_print()
二、返回值
def sum_num(a, b):
return a ** b
c = sum_num(2, 10)
print(c)
三、定义函数说明文档
def sum_num(a, b):
'''
sum_num
:param a: num1
:param b: num2
:return: num1 ** num2
'''
return a ** b
c = sum_num(2, 10)
print(c)
help(sum_num)
四、函数嵌套调用
def sum_num(a, b):
return a ** b
def add_num(a, b):
return sum_num(a, b) + sum_num(b, a)
print(add_num(2, 3))
五、变量的作用域
a = 100
b = 100
def testA():
print(f'testA(): a = {a}, b = {b}')
def testB():
global a
a = 200
b = 200
print(f'testB(): a = {a}, b = {b}')
testA() # testA(): a = 100, b = 100
testB() # testB(): a = 200, b = 200
print(f'global: a = {a}, b = {b}') # global: a = 200, b = 100
六、多返回值
def return_num():
return 1, 2, 3
print(return_num()) # (1, 2, 3)
七、函数参数
1、位置参数
def user_info(name, age, gen):
print(f'You name:{name}, Your age:{age}, Your gender:{gen}')
user_info('Tom', 23, 'M')
2、关键字参数
def user_info(name, age, gen):
print(f'You name:{name}, Your age:{age}, Your gender:{gen}')
user_info(gen='M', age=23, name='TOM')
3、缺省参数
def user_info(name, age, gen='M'):
print(f'You name:{name}, Your age:{age}, Your gender:{gen}')
user_info(age=23, name='TOM')
user_info(gen='W', age=23, name='TOM')
4、不定长参数
包裹位置传递
def user_info_loc(*args):
print(args)
user_info_loc(1)
user_info_loc(1, 2)
user_info_loc(1, 2, 3)
包裹关键字传递
def user_info_key(**kwargs):
print(kwargs)
user_info_key(name='TOM', age=23)
八、拆包和交换变量值
拆包
def ret_num():
return 1, 2
num1, num2 = ret_num()
print(num1, num2)
dict1 = {'name': 'TOM', 'age': 23}
item1, item2 = dict1.items()
print(item1)
print(item2)
交换变量值
a, b = 1, 2
a, b = b, a
print(a, b)
九、引用
a = 1
b = a
print(f'a={a}, ida={id(a)}; b={b}, idb={id(b)}')
# a=1, ida=1855712368; b=1, idb=1855712368
b = 2
print(f'a={a}, ida={id(a)}; b={b}, idb={id(b)}')
# a=1, ida=1855712368; b=2, idb=1855712400
a = 3
print(f'a={a}, ida={id(a)}; b={b}, idb={id(b)}')
# a=3, ida=1855712432; b=2, idb=1855712400
十、引用做实参
def test(a):
print(f'a={a}, ida={id(a)}')
# a=100, ida=1855715536
a += a
print(f'a={a}, ida={id(a)}')
# a=200, ida=1855718736
b = 100
print(f'b={b}, idb={id(b)}')
# b=100, idb=1855715536
test(b)
print(f'b={b}, idb={id(b)}')
# b=100, idb=1855715536
十一、可变与不可变数据类型
可变类型:列表、字典、集合
不可变类型:整型、浮点型、字符串、元组