Python:函数使用

目录

一、函数的基本介绍

函数与方法的区别

函数的定义

二、函数返回值及传参的情况

test01

test02

test03

三、函数嵌套

test04

四、lambda表达式

test05

一、函数的基本介绍

函数与方法的区别

直接调用的是函数

通过对象点出来的是方法

print("hello")
a = [2, 1, 3]
a.sort()
print(a)

函数的定义

常规函数定义,有返回值的,跟无返回值的

Python对于参数的传入是没有类型限制的

不过可以通过给参数添加类型,提示调用时应传入的类型

二、函数返回值及传参的情况

test01

# 定义函数
def say(name):
    print(f'{name}:say hell')

say('张三')
print("====================定义函数=====================")

# 有参有返回
def say1(name1):
    return name1


print(say1("李四"))
print("====================有参有返回=====================")

# 无参有返回
def say2():
    return "被调用"


print(say2())
print("====================无参有返回=====================")


# 无参无返回
def say3():
    print("无参无返回")

# Java:反射调用方法,方法被void修饰,是有返回值 ,是null
# Python:无参无返回,方法被调用,返回值是none
print(say3())
print("====================无参无返回=====================")

# 在Java中函数和方法是同一个东西
# Python中
# 函数指的是可以单独调用的,比如print/type
#方法指的是不能单独调用,l1 = [1,2,3,4]  l1.extend({1})

运行

test02

# def add(a, b):
#     return a + b
#
#
# print(add(1,2))

# 直接锁定参数类型 若在调用时传入类型不匹配的则会给出提示
# def add1(a:int, b:int):
#     return a + b
#
#
# print(add1(1,2))

# 设置默认值
# def add2(a, b=2):
#     return a + b
#
#
# print(add2(1,4))

# 常见传参
# 1.位置传参
# res(1, 2)
# 2.关键字传参
# add(a=3,b=6)

# 3.缺省传参
# def res(a, b=3):
#     print(a)
#     print(b)
# res(1)
# res(1,2)

# 其他传参
"""
可变传参-元组 tuple
"""
def add(*a):
    print(a)
    print(type(a))
add(1,2,3,4,5,6,7)

# 利用可变参数的方式计算1-10的和
def he(*h):
    total = 0
    for i in h:
        total += i
    return  total


print(he(1, 2, 3, 4, 5, 6, 7, 8, 9, 10))

"""
可变传参-字典dict
"""
def chen(**a):
    print(a)
    print(type(a))
    # print(a.values())
    for i in a.values():
       print(i)
chen(a=2,b=3,c=4)

运行

test03

利用python可以返回多个值的特点,完成一个案例

# python中的返回值
# 计算最大值、最小值、所有元素求和
def jisuan(*arr):
    min = arr[0]
    max = arr[0]
    total = 0
    for i in arr:
        # java:min = min < i ? min :i
        min = min if min < i else i
        max = max if max > i else i
        total += i
    return min,max,total


print(jisuan(1, 2, 3, 4, 5))

运行

三、函数嵌套

使用递归完成求和(1-100)、

test04

# 递归求和1-100的和
def sum(n):
    if n < 2:
        return n
    else:
        return n + sum(n - 1)


print(sum(100))

运行

四、lambda表达式

test05

# lambda表达式
def add(a,b):
    return a+b


print(add(1, 3))
print("=====================================")
#  python 中的表达式只能存在一行代码,使用 python 中的 lambda 来简化函数
# 形式
jia = lambda a,b:a+b
print(jia(1, 3))
print("=====================================")
"""
案列
"""
arr = [1,2,3,4,5,6,7]
# 将列表arr中的所有元素都*2
arr2 = map(lambda a:a*2,arr)

for i in arr2:
    print(i)
print("=====================================")

#将两个数组对应位置的元素值相加
a= [1,2,3,4,5,6,7]
b= [8,9,10,11,12,13,14]
xj = lambda a,b:a+b
# e1代表a列表中的其中一个元素 e2代表b列表对应位置下的那个元素
c = map(lambda e1,e2:e1+e2,a,b)
for i in c:
    print(i)
print("=====================================")

# filter函数
d = filter(lambda e:e>5,b)
for i in d:
    print(i)
print("=====================================")

# 字典排序 使用 lambda 对字典数据进行排序
persons = [
    {"name": "张三", "age": 20},
    {"name": "李四", "age": 17},
    {"name": "王麻子", "age": 21}
]
persons.sort(key=lambda p: p['age'], reverse=True)
print(persons)

运行

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值