PYTHON之函数

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)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值