函数的学习

函数
必须先定义后使用

def add(x,y):
    re=x+y
    print(f"{x},{y},{re}")

add(1,2)

同名函数调用就近原则
参数
1.位置参数
根据函数定义的参数位置传递参数
传递的参数和定义的参数的顺序及个数必须一致,否则要报错
2.关键字参数
函数调用时通过“形参名=实参值”形式传递参数。

def name(n1,n2):
    print(f"名字是{n1},{n2}")

name(n2="ds",n1="dsd")#名字是dsd,ds

3.缺省参数
给参数提供默认值,指定了则以指定的为准

def name(n1,n2=22):
    print(f"名字是{n1},{n2}")

name(n1="ds")

(注意:所有位置参数必须出现在默认参数前,包括函数定义和调用)
4.不定长参数
不确定调用的时候会传递多少个参数

  • 4.1位置传递
    *表示0到多
def name(*args):
    print(args)

name("xxc")

args变量收集,它会根据传进参数的位置合并为一个元组(tuple)

def sum(*args):
    print(f"{args}的类型是{type(args)}")
    total=0
    for ele in args:
        total+=ele
    return total

print(sum(1,2,23))
#(1, 2, 23)的类型是<class 'tuple'>
#26
  • 4.2关键字传递
    参数是“键=值”形式的情况下,所有的“键=值”都会被kwargs接受,同时会根据“键=值”组成字典。
def info(**kwargs):
    print(kwargs)

info(name="tom",age=18,id=10)

函数返回值
def 函数(参数…):
函数体
return 返回值
变量 = 函数(参数)

函数体在遇到return后就结束了,所以写在return后的代码不会执行。

def person_info(**args):
    print(f"{args}的类型是{type(args)}")
    for ele in args:
        print(f"参数名:{ele},参数值:{args[ele]}")
person_info(name='hsp',age=18,email="jdfo")
'''{'name': 'hsp', 'age': 18, 'email': 'jdfo'}的类型是<class 'dict'>
参数名:name,参数值:hsp
参数名:age,参数值:18
参数名:email,参数值:jdfo'''

函数的多返回值
按照返回顺序,用逗号隔开返回

def li():
    n1=1
    n2=3
    return n1,n2
x,y=li()
print(x)#1
print(y)#3

函数作为参数进行传递

def getMax(x,y):
    max=x if x>y else y
    return max
def f1(fun,n1,n2):
    return fun(n1,n2),n1+n2

print(f1(getMax,1,2))

如果函数作为参数进行传递,这个函数只使用一次,这时可考虑lambda匿名函数
基本语法:
在这里插入图片描述

def f1(fun,a,b):
    return fun(a,b)
max=f1(lambda a,b:a if a>b else b,12,10)
print(max)

NONE类型

None作为一个特殊的字面量,用于表示:空、无意义,有非常多的应用场景。
用在函数无返回值上
用在if判断上
在if判断中,None等同于False

def check_age(age):
    if age > 18:
        return "SUCCESS"
    else:
        return None
 
result = check_age(5)
if not result:
    #进入if表示result是None值,也就是False
    print("未成年")

变量在函数中的作用域
1.局部
定义在函数体内部的变量,即只在函数体内部生效。
2.全局变量是指在函数体内、外都能生效的变量。

global关键字

使用global关键字,可以在函数内部声明变量为全局变量

num = 100
 
def test_a():
    print(f"test_a:{num}")
 
def test_b():
    # global关键字声明num是全局变量
    global num
    num = 500
    print(f"test_b:{num}")
 
test_a()
test_b()
print(num)

调用另外一个.py文件中的函数

f1.py
def add(x,y):
return x+y
在f2中调用

import f1
f1.add(1,2)
  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值