文章目录
1、函数使用步骤
1、定义函数
def 函数名(参数):
代码1
代码2
................
2、调用函数
函数名(参数)
注意:不同的需求,参数可有可无 函数必须先定义后使用
2、函数需求1
pypdef sel_func():
print('显示余额')
print('存款')
print('取款')
#搭建整体框架
print('密码正确登录成功')
#确定功能界面
sel_func()
#封装函数
sel_func()
#在需要的位置调用函数
sel_func()
2、函数的注意事项
函数先定义再调用,如果先调用则报错
如果没有调用函数,函数里面的代码不会执行
#定义函数
def info_print():
print('hello world')
#调用函数
info_print()
2、函数的参数作用
完成1和2的加法运算
#定义函数
def info_print():
print('hello world')
#调用函数
info_print()
调用函数时传入了真实的数据10 和 20,真是数据为实参。a、b为形参
3、函数返回值作用
返回结果给用户需要使用函数返回值
def buy():
return '烟'
goods = buy()
print(goods)
函数返回值的应用
def add_num(a,b):
return a+b
result = add_num(10,20)
print(result)
4、函数定义说明文档
def 函数名(参数):
"""说明文档的位置"""
代码
........
查看函数的说明文档
help(函数名)
def add_num(a, b):
"""求和函数"""
return a + b
help(add_num)
5、函数嵌套调用
一个函数里面包含另一个函数
应用1
def testB():
print('aaaa')
print('aaaa')
print('aaaa')
def testA():
print('bbbbbb')
testB()
print('bbbbbb')
print('bbbbbb')
testA()
应用2:打印
打印一条横向
def print_line():
print('-'*20)
print_line()
打印多条横线
def print_lines(num):
i=0
while i<num:
print('-' * 20)
i+=1
print_lines(5)
应用3:函数计算
三个数求和
def sum_num(a,b,c):
return a+b+c
result=sum_num(1,2,3)
print(result)
三个数平均值
def sum_num(a,b,c):
return a+b+c
def avg_num(a,b,c):
return sum_num(a,b,c)/3
result=avg_num(1,2,3)
print(result)
6、变量作用域
1、局部变量:定义在函数体内部的变量,即只在函数体内部生效
def testA():
a=100
print(a)
testA() #100
print(a) # a is not defined
2、全局变量:定义在函数体内部外部都生效的变量
a=100
def testA():
print(a)
testA() #100
print(a) #100
3、修改全局变量
a=100
print(a)
def testA():
print(a)
def testB():
global a #声明全局变量
a=200
print(a)
testA()
testB()
print(a)
4、多函数执行流程
glo_num = 0
def test1():
global glo_num
glo_num=100
def test2():
print(glo_num)
print(glo_num)
test1()
test2()
6、返回值作为参数传递
def test1():
return 50
def test2(num):
print(num)
result=test1()
test2(result)
7、函数的返回值
一个函数多个返回值
def return_num():
return {'name':'python','age':30}
# return (100,200)
#return (10,20)
# return 1,2
result = return_num()
print(result)
值执行第一个return,return即退出当前函数
return a,b 写法,返回多个数据的时候,默认是元组类型
return后面可以连接列表、元组或字典,以返回多个值
8、函数的参数
8.1、位置参数:
调用函数时根据函数定义的参数位置来传递参数
def use_aa(name,age,gender):
print(f'您的姓名是{name},年龄是{age},性别是{gender}')
use_aa('tom',20,'女')
8.2、关键字参数
通过键=值的形式 位置参数必须在关键字参数前面,但关键字参数没有先后顺序
def use_aa(name,age,gender):
print(f'您的姓名是{name},年龄是{age},性别是{gender}')
use_aa('tom',20,'女')
use_aa(name='tom',age=20,gender='女')
use_aa(name='tom',gender='女',age=20)
8.3、缺省参数
缺省参数也叫默认参数,用于定义函数,为参数提供默认值
def use_aa(name,age,gender='男'):
print(f'您的姓名是{name},年龄是{age},性别是{gender}')
use_aa('tom',20,'女')
use_aa(name='tom',age=20)
函数调用时,如果为缺省参数传值则修改默认参数值,否则使用默认值。
8.4、不定长参数
也叫可变参数,用于不确定调用的时候会传递多少个参数(不传参可以)的场景
包裹位置传递
def user_info(*args):
print(args)
user_info('tom')
user_info('tom',18)
包裹关键字传递
def user_info(**kwargs):
print(kwargs)
user_info(name='tom')
user_info(name='tom',age=18,id=110)
9、拆包和交换变量值
9.1、拆包:元组
def return_num():
return 100,200
num1,num2=return_num()
print(num1)
print(num2)
9.2、拆包:字典
dict1 ={'name':'tom','age':'18'}
a,b =dict1
print(a)
print(b)
print(dict1[a])
print(dict1[b])
10、交换变量值
10.1、借助第三变量存储数据
a,b=1,2
a,b = b,a
print(a)
print(b)
11、引用
在python中,值是靠引用来传递的
用id()来判断两个变量是否为同一个值得引用
a=1
b=a
print(b)
#a、b的id值是一样的
print(id(a))
print(id(b))
#修改a的数据测试id值
a=2
print(b)
print(a)
12、引用
列表是可变类型
aa=[10,20]
bb=aa
print(aa)
print(id(aa))
print(id(bb))
aa.append(30)
print(aa)
print(bb)
引用当作实参
def test1(a):
print(a)
print(id(a))
a+=a
print(a)
print(id(a))
b = 100
test1(b)
c=[11,22]
test1(c)