Python公开课 - 详解函数

前言

函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。对于代码开发人员来说,函数编程的基础。

函数的要素

对于一个函数来说,需要包含以下几个要素:

  • 函数名 - 函数的调用名称
  • 入参 - 传入函数的参数
  • 出参 - 传出函数的参数
  • 返回结果 - 执行函数的返回值
def TestFunc(in_para, out_para):
    out_para.append('出参')
    return 0

out_para = []
print(TestFunc(1, out_para))
print(out_para)

示例说明:

  • TestFunc: 函数名
  • in_para: 入参,一般不可改变,在C++ 中一般会以const来修饰,但是Python中没有提供该修饰词,这也是C++语法更严格更安全的提现
  • out_para: 出参,根据函数计算,可以修改。在Python中定义函数时,想利用参数输出某些处理过的变量,那必须使用可以更改的对象,如list,dict等
  • return: 为函数返回,可以返回一个或者多个

函数参数

位置参数

def ComputeFunc(x):
    return x * x

ComputeFunc(6)

当我们调用ComputeFunc函数时,必须传入有且仅有的一个参数x

关键字参数

关键字(keyword)传递是根据每个参数的名字传递参数。关键字并不用遵守位置的对应关系。

def fun(a,b,c):
  return a+b+c

print(f(1,c=3,b=2))

默认参数

def ComputeFunc(x, n=1):
    return x * x

ComputeFunc(6)

默认参数可以简化函数的调用。

设置默认参数时,要注意:

  • 必选参数在前,默认参数在后,否则Python的解释器会报错

建议:

  • 当函数有多个参数时,把变化大的参数放前面,变化小的参数放后面。变化小的参数就可以作为默认参数。

可变参数

在某些场景下,我们可能会不知道入参会有多少个,这个时候,可变参数就上场了,可变参数就是传入的参数个数是可变的,可以是1个、2个到任意个,还可以是0个。

def func(*name):
    print(type(name))
    print(name)

func(1,4,6)
func(5,6,7,1,2,3)

当然还可以这样:

def func(*name):
    print(type(name))
    print(name)

name = [1, 4, 6]
func(*name)

可变关键字参数

可变参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple。而可变关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict

def func(**dict):
    print(type(dict))
    print(dict)

func(a=2,b=1,c=11)

当然还可以这样:

def func(**dict):
    print(type(dict))
    print(dict)

d = {"a":2, "b":1, "c":11}
func(**d)

输出:
<class 'dict'>
{'c': 11, 'b': 1, 'a': 2}

参数组合

def f1(a, b, c=0, *args, **kw):
    print('a =', a, 'b =', b, 'c =', c, 'args =', args, 'kw =', kw)

f1(1, 2, 3, 'a', 'b', x=86)

输出:
a = 1 b = 2 c = 3 args = ('a', 'b') kw = {'x': 86}

函数返回 return

return 语句用于退出函数,选择性地向调用方返回一个表达式。不带参数值的return语句返回None。

相关阅读


相关推荐
  1. 机器学习 - 监督学习概述
  2. HashMap底层结构与JVM内存模型 - 阿里技术面试
  3. 衡阳市飞雁学校
  4. Python公开课 - 全文检索模块Whoosh详解(1)
  5. 南通诺德安达双语学校
  6. 广州市白云区七点伴儿童艺术中心 - 广州幼儿园黄页
  7. 济南市平阴县第三中学
  8. 深圳市南山区前海学校中学部(前海中学)
  9. 杭州师范大学附属中学(杭师大附中)
  10. 易中天给英雄武汉的一首诗 - 武汉新鲜事
  11. 广州市黄埔区文冲中学
  12. 天津市河东区益寿里小学
  13. 济南市纬二路小学育晖分校
  14. 重庆市颖贝贝幼儿园 - 重庆幼儿园黄页
  15. 虱子和跳蚤
  16. 重庆市江津区全纳幼儿园 - 重庆幼儿园黄页
  17. Python之机器学习入门
  18. 南宁市秀厢东段小学
  19. 面试宝典
  20. 湖北将发放消费券 - 武汉新鲜事
  21. 重庆市江北区天骄北国风光幼儿园 - 重庆幼儿园黄页
  22. 辽宁省沈阳市法库县琳琳幼儿园 - 沈阳幼儿园黄页
  23. 浏阳市人民路第二小学(浏阳人民路二小)
  24. 专横跋扈的鸡
  25. 重庆市人和街小学(渝中区实验一小)
  26. 事发武汉农夫山泉矿泉水内惊现大量虫卵
  27. 诚实的人
  28. Python公开课 - pyspider框架介绍
  29. 解决Python json.dumps中文字符乱码问题
  30. Python基础教程 - 从零开始学Python
  31. 奥迪客户不满加价,被武汉4S店销售群殴
  32. 唯亭东亭幼儿园 - 苏州幼儿园黄页
  33. 博野县程委中学
  34. 北京市昌平区星乐双语幼儿园 - 北京幼儿园黄页
  35. 百名网媒总编辑登上知音号欣赏武汉夜色
  36. 郑州兴华中学
  37. 遵义市绥阳县乐乐幼儿园 - 遵义市幼儿园黄页
  38. 武汉女子网上做兼职被骗六十五万
  39. 西安市第六十一中学
  40. 枣庄市孟庄镇中心小学
  41. 上海市浦东新区高行小学
  42. 上海市民办扬波中学
  43. 武汉动物园火烈鸟孔雀排队打疫苗
  44. 央媒聚焦!国庆假期173.78万人次打卡大美黄陂
  45. 牛 尾 鞭 子
  46. 武汉一女子七天被骗220万
  47. 什么是TOGAF - TOGAF系列教程(1)
  48. 上海南桥小学
  49. 牧鹅姑娘
  50. Python公开课 - 爬虫之网页结构
  51. 老生常谈
  52. 约翰不再吹牛了
  53. 长着外骨骼的小螃蟹
  54. 盘古开天辟地
  55. 邯郸市荀子中学
  56. 警方通报:武汉男子持刀至五死一伤,嫌犯已跳桥
  57. 宝宝大便有奶瓣怎么回事 - 育儿经验
  58. 河北省唐山市迁安市金色摇篮幼儿园 - 唐山幼儿园黄页
  59. 杭州市时代小学
  60. 送太阳