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. OpenJDK与Oracle JDK的区别
  3. 一双鞋的故事
  4. 哦,牛锁
  5. 多活容灾解决方案
  6. 驴子的围墙
  7. 武汉市江夏区第一小学幼儿园 - 武汉幼儿园黄页
  8. Python公开课 - 爬虫基本原理
  9. 舟山市北蝉中心小学
  10. 事发武汉农夫山泉矿泉水内惊现大量虫卵
  11. 济南市明星小学
  12. 湖北将发放消费券 - 武汉新鲜事
  13. 无锡市凤翔实验学校
  14. 如何通过训练提高Tesseract OCR验证码识别率
  15. 百名网媒总编辑登上知音号欣赏武汉夜色
  16. 爬上火车的老鼠
  17. 武汉推出越王勾践剑交通卡
  18. 武汉女子网上做兼职被骗六十五万
  19. 武汉市青山区建设一路小学
  20. 翘嘴巴小兔
  21. 武汉动物园火烈鸟孔雀排队打疫苗
  22. 上海外国语大学松江外国语学校
  23. 广州市天河区暨南大学附属幼儿园 - 广州幼儿园黄页
  24. Python库使用教程
  25. 定边海博幼儿园 - 榆林市幼儿园黄页
  26. 跟着月亮猪走的鼷鹿
  27. Centos7中配置 Putty免密码登录
  28. 南宁市横县继红幼儿园 - 南宁幼儿园黄页
  29. 小海螺与大鲸鱼
  30. 长春市榆树市广播局幼儿园 - 长春幼儿园黄页
  31. 30多天的婴儿一放就醒怎么办 - 育儿经验
  32. 武汉一女子七天被骗220万
  33. 电池技术 - 电动汽车的核心
  34. 掩耳盗铃
  35. 武汉市黄陂区新博幼儿园 - 武汉幼儿园黄页
  36. 东莞市虎门镇南栅小学
  37. TCP报头格式的是什么?
  38. 程序自动去除图片水印
  39. 沛沛幼儿园 - 哈尔滨幼儿园黄页
  40. Python的应用领域与就业前景
  41. 崇州市金摇篮幼儿园 - 成都市幼儿园黄页
  42. 柳州柳南实验小学
  43. 最漂亮的星星
  44. 佛山顺德区众涌小学
  45. 佛山红岗小学
  46. 易中天给英雄武汉的一首诗 - 武汉新鲜事
  47. 长颈鹿的小靴子
  48. 奥迪客户不满加价,被武汉4S店销售群殴
  49. 央媒聚焦!国庆假期173.78万人次打卡大美黄陂
  50. 市妇联经济开发区幼儿园 - 乌鲁木齐幼儿园黄页