python入门简单函数

定义函数

1.不带参数
语法: def 函数名():

def say():
			print("世界真美好")

调用函数: 注1:必须放到定义函数的后面

def test():
    print("世界真美好")


test()

在这里插入图片描述
2.带一个参数的函数 注2:函数和函数之间空格两行
语法: def 函数名(参数):

		def say(what):
			print(f"{what}")

调用函数:调用带参数的函数,如果不带参数过去,编译不报错,但是运行报错(跟java不同)
say(“真好”)

def test2(what):
    print(f"{what}")


test2("哈哈哈")

在这里插入图片描述
3.带两个参数的函数

def test(a, b):
			print(f"a={a}")
			print(f"b={b}")

调用函数:
1.位置方式
test(22, 11)

2.关键字方式
test(b=22, a=11)

在这里插入图片描述

3.缺省参数(默认值) 注意:有默认值的参数必须放在没有默认值参数的后面
def test(a, b=444):

#test(b=11,11) 错误:因为b有默认值
test(11,b=11)

在这里插入图片描述
4.可变参数
1.参数是元组类型

def test1(*args):# *代表可变参数
    """这是一个求多个值和的函数"""
    sum = 0
    for i in args:
        sum += i
    else:
        print(f"和为{sum}")

在这里插入图片描述
2.参数为字典类型

def test2(**kwargs): 
    for k, v in kwargs.items():
        print(k, v)


# 调用函数:
test2(name="zs", age=19)

在这里插入图片描述

函数返回值

函数的说明文档:
help(print())

1.返回值为多个(跟java不同)

def test3(a, b, c):
    """
    这是一个测试函数,测试函数为多个返回值
    :param a:1
    :param b:2
    :param c:3
    :return: 返回多个值
    """
    a += 100
    b += 100
    c += 100
    return a, b, c


help(test3)

在这里插入图片描述

函数嵌套调用

def test1(*args):
    """这是一个求多个值和的函数"""
    sum = 0
    for i in args[0]: #去数组第一个元素
        sum += i
    else:
        # print(f"和为{sum}")
        #         返回值
        print(sum)
        return sum

# 计算多个值的平均值
def test4(*args):
    sum = test1(args)
    return sum / len(args)


print(test4(12, 5, 3))

在这里插入图片描述

测试变量范围

a=9
def test5():
    # 在函数内部修改全局变量的值
    # 必须声明 变量为全局变量
    global a  #声明为全局变量   目的修改变量a的值
    a = 333
    print(f"函数内:{a},地址为:{id(a)}")


print(f"函数外1:{a},地址为:{id(a)}")

test5()

print(f"函数外2:{a},地址为:{id(a)}")

在这里插入图片描述

递归:函数内部调用函数本身

这里用文字说一下,首先调用了test6方法传了个4进入if判断不等于1、
进入return num + 又调了一次方法4-1=3还是不满足条件就继续
直到==1才不会相加

# 求某个数以内的和
def test6(num):
    if num == 1:
        return 1
    return num + test6(num - 1)  # 4+3+2+1


# 调用递归函数:
print(test6(4))

在这里插入图片描述

lambda表达式

lambda表达式(匿名函数,如果一个函数有一个返回值,并且只有一句代码,就可以使用lanbda表达式简化)
语法:
变量名=lambda: 表达式/返回值 注:参数可以省略
1.不带参数的函数

say = lambda: "真美好"

print(say())
# 注:跟def定义的函数的调用方式有区别

2.带一个参数的函数

say1 = lambda what: f"你说:{what}"

print(say1("halo"))

3.带两个参数的函数

test2 = lambda a, b=222: f"a={a},b={b}"

print(test2(1, 2))

4.带条件的lambda

test3 = lambda a, b: a if a > b else b

print(test3(1, 2))

在这里插入图片描述
1.求1,2,3内的和,用lambda实现

test8 = lambda *args: sum(args)
print(test8(1, 2, 3))

在这里插入图片描述
2.用lambda对字典列表进行排序

persons = [
				{"name": "张三", "age": 22},
				{"name": "A罗旺", "age": 12},
				{"name": "王五", "age": 23},
				{"name": "赵六", "age": 2}
			]

			persons.sort(key= lambda person:person["age"], reverse=True)
			
			print(persons)

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值