• Python:函数使用


    目录

    一、函数的基本介绍

    函数与方法的区别

    函数的定义

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

    test01

    test02

    test03

    三、函数嵌套

    test04

    四、lambda表达式

    test05

    一、函数的基本介绍

    函数与方法的区别

    直接调用的是函数

    通过对象点出来的是方法

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

    函数的定义

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

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

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

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

    test01

    1. # 定义函数
    2. def say(name):
    3. print(f'{name}:say hell')
    4. say('张三')
    5. print("====================定义函数=====================")
    6. # 有参有返回
    7. def say1(name1):
    8. return name1
    9. print(say1("李四"))
    10. print("====================有参有返回=====================")
    11. # 无参有返回
    12. def say2():
    13. return "被调用"
    14. print(say2())
    15. print("====================无参有返回=====================")
    16. # 无参无返回
    17. def say3():
    18. print("无参无返回")
    19. # Java:反射调用方法,方法被void修饰,是有返回值 ,是null
    20. # Python:无参无返回,方法被调用,返回值是none
    21. print(say3())
    22. print("====================无参无返回=====================")
    23. # 在Java中函数和方法是同一个东西
    24. # Python中
    25. # 函数指的是可以单独调用的,比如print/type
    26. #方法指的是不能单独调用,l1 = [1,2,3,4] l1.extend({1})

    运行

    test02

    1. # def add(a, b):
    2. # return a + b
    3. #
    4. #
    5. # print(add(1,2))
    6. # 直接锁定参数类型 若在调用时传入类型不匹配的则会给出提示
    7. # def add1(a:int, b:int):
    8. # return a + b
    9. #
    10. #
    11. # print(add1(1,2))
    12. # 设置默认值
    13. # def add2(a, b=2):
    14. # return a + b
    15. #
    16. #
    17. # print(add2(1,4))
    18. # 常见传参
    19. # 1.位置传参
    20. # res(1, 2)
    21. # 2.关键字传参
    22. # add(a=3,b=6)
    23. # 3.缺省传参
    24. # def res(a, b=3):
    25. # print(a)
    26. # print(b)
    27. # res(1)
    28. # res(1,2)
    29. # 其他传参
    30. """
    31. 可变传参-元组 tuple
    32. """
    33. def add(*a):
    34. print(a)
    35. print(type(a))
    36. add(1,2,3,4,5,6,7)
    37. # 利用可变参数的方式计算1-10的和
    38. def he(*h):
    39. total = 0
    40. for i in h:
    41. total += i
    42. return total
    43. print(he(1, 2, 3, 4, 5, 6, 7, 8, 9, 10))
    44. """
    45. 可变传参-字典dict
    46. """
    47. def chen(**a):
    48. print(a)
    49. print(type(a))
    50. # print(a.values())
    51. for i in a.values():
    52. print(i)
    53. chen(a=2,b=3,c=4)

    运行

    test03

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

    1. # python中的返回值
    2. # 计算最大值、最小值、所有元素求和
    3. def jisuan(*arr):
    4. min = arr[0]
    5. max = arr[0]
    6. total = 0
    7. for i in arr:
    8. # java:min = min < i ? min :i
    9. min = min if min < i else i
    10. max = max if max > i else i
    11. total += i
    12. return min,max,total
    13. print(jisuan(1, 2, 3, 4, 5))

    运行

    三、函数嵌套

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

    test04

    1. # 递归求和1-100的和
    2. def sum(n):
    3. if n < 2:
    4. return n
    5. else:
    6. return n + sum(n - 1)
    7. print(sum(100))

    运行

    四、lambda表达式

    test05

    1. # lambda表达式
    2. def add(a,b):
    3. return a+b
    4. print(add(1, 3))
    5. print("=====================================")
    6. # python 中的表达式只能存在一行代码,使用 python 中的 lambda 来简化函数
    7. # 形式
    8. jia = lambda a,b:a+b
    9. print(jia(1, 3))
    10. print("=====================================")
    11. """
    12. 案列
    13. """
    14. arr = [1,2,3,4,5,6,7]
    15. # 将列表arr中的所有元素都*2
    16. arr2 = map(lambda a:a*2,arr)
    17. for i in arr2:
    18. print(i)
    19. print("=====================================")
    20. #将两个数组对应位置的元素值相加
    21. a= [1,2,3,4,5,6,7]
    22. b= [8,9,10,11,12,13,14]
    23. xj = lambda a,b:a+b
    24. # e1代表a列表中的其中一个元素 e2代表b列表对应位置下的那个元素
    25. c = map(lambda e1,e2:e1+e2,a,b)
    26. for i in c:
    27. print(i)
    28. print("=====================================")
    29. # filter函数
    30. d = filter(lambda e:e>5,b)
    31. for i in d:
    32. print(i)
    33. print("=====================================")
    34. # 字典排序 使用 lambda 对字典数据进行排序
    35. persons = [
    36. {"name": "张三", "age": 20},
    37. {"name": "李四", "age": 17},
    38. {"name": "王麻子", "age": 21}
    39. ]
    40. persons.sort(key=lambda p: p['age'], reverse=True)
    41. print(persons)

    运行

     

     

  • 相关阅读:
    java连接mysql数据库结构表批量生产word文档
    数据科学中的数据库简介
    MongoDB开启远程连接
    Xcode与Swift开发小记
    学习 CodeWhisperer 的一些总结
    网络安全(黑客)自学
    瑞芯微RK3588开发板:虚拟机yolov5模型转化、开发板上python脚本调用npu并部署 全流程
    软件项目管理文档模板目录
    如何实现生产质量精细化管理?
    基于java+SpringBoot+HTML+Mysql政务审批网站的设计与实现
  • 原文地址:https://blog.csdn.net/weixin_62735525/article/details/128047642