python-函数

一、基本介绍

  • 没有使用函数式编程之前带来的问题
  • 代码的组织结构不清晰,可读性差
  • 实现重复的功能时,你只能重复编写实现功能的代码,导致代码冗余,白白耗费精力。假如某一部分功能需要扩展或更新时,需要找出所有实现此功能的地方,一一修改,无法统一管理,加大了维护难度。

函数是什么

1、函数是对实现某一功能的代码的封装
2、函数可以实现代码的复用,从而减少代码的重复编写

二、定义函数

1、函数分类

函数分为 内置函数 和 自定义 函数

1、置函数是自带的,直接可以调用。比如 : id() type() list()
2、自定义函数 是我们自己在代码中编写定义的

2、定义函数语法

def 函数名(参数1.参数2,......)
    '''注释'''
    函数体
    return 返回值
  • def 是定义函数的关键字
  • 函数名和变量名的定义规则一样,要能体现出函数的功能含有:
    1、()小括号时必须的
    2、:小括号后面的英文冒号是必须的
  • 参数不是必须的,多个参数使用英文逗号,隔开,
  • 函数体可以写任意合法的python代码,需要缩进4个空格。
  • return 是用于返回数据的,这个是可选的。
  • 返回值也是可选的。

定义函数

def foo():
    print("hello jack")
foo()  #调用函数
****注意:函数必须先定义,才能调用****

三、函数的参数

函数的参数可以是python 中的任意数据类型,并且参数的数量可以是零个或多个。
函数参数分为:

  • 形参:形式上的参数,在定义函数时使用,其实就是一个变量名
  • 实参:实际的数据,实在调用函数时使用。

1、形参中位置参数和默认参数

def sys(msg)      --sys就是位置参数--
    print(msg)
    s = "hello,jack"
#调用
sys(s)  

1、函数调用

def func(x,y)
    n = x -y
    print(n)
func(3,2)

2、传递参数

位置参数有几个,调用函数时就要传递几个。并且有位置顺序的区分

1.默认参数,直接传递实参
def conn_L(ip="192.168.142.99"):
      print(ip)
conn_L()

2.也可以传递实参
conn_L("192.168.142.1")

2、实参中的位置参数和关键字参数

  • 实参:在函数使用的时候,给函数传递的参数。
  • 位置参数:一个个数据对象,传递的时候是有位置顺序区分的。如:(18,'jack')
  • 关键字参数:变量名和变量名的组合,传递的时候没有位置顺序之分。如:(name=jack,age=18)
1.位置参数
def say_me(name,age):
    print("昵称:",name)
    print("年龄:",age)
say_me("jack",18)      
 
2.关键字参数
def say_me(name,age):
    print("昵称:",name)
    print("年龄:",age)
say_me(age=18,name="jack") 

**关键字参数的变量名必须 和定义函数时的参数名称一致**

3、实现接受任意参数

*  可以接收所有的位置参数
** 可以接收所有的关键字参数。

In [7]: def aa(*args,**kwargs): 
   ...:     print(args) 
   ...:     print(kwargs) 
   ...: aa(1,3,a=10)                                                    
(1, 3)
{'a': 10}

4、返回值强大之处

函数也可以通过关键字 return 返回任何数量的 Python 中的任意数据类型,作为结果

调用函数并且接收返回值
In [9]: def foo(): 
   ...:     s = 'lenv' 
   ...:     li = [1,2,3] 
   ...:     return s,li 
   ...: name,l3 = foo()                                                 
In [10]: name                                                           
Out[10]: 'lenv'
In [11]: l3                                                             
Out[11]: [1, 2, 3]

四、函数的高级用法

1、作为参数传递

def f1():
    n = 1 + 1
    return n

def foo():
   ret = arg()
   print(ret)
foo(f1)
输出2
----------------------------------------------
注意这里传递的是 函数名,后面不要加小括号。
本质上是传递了函数对象本身

2、作为返回值返回

def f2():
    print("hello")
def func():
    return f2
f = func()
print(id(f))
print(id(f2))

# f 和 f2 都指向了同一个函数对象
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,919评论 6 502
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,567评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,316评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,294评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,318评论 6 390
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,245评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,120评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,964评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,376评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,592评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,764评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,460评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,070评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,697评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,846评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,819评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,665评论 2 354

推荐阅读更多精彩内容

  • 天是淡淡,淡淡的蓝。一种经过了水洗之后,一层一层褪色的那种蓝,轻柔,沁透。 云会幻化出不同的样子。被光照着,似乎发...
    5123212阅读 339评论 0 0
  • 上午,在火车站广场上,遇见了一位坐在轮椅上了中年男子。他自己说坐错车了,本来就是要从上海坐火车回老家武昌的。因为当...
    君远近阅读 256评论 0 1
  • 甘于平庸令人上瘾,我们享受一时的安逸自在,任由平凡的日子埋葬曾经的斗志和激情,渐渐地,淹没在人群中,成了广大碌碌无...
    666淡看殇感美阅读 185评论 0 0
  • 今天是过年第四天,坐标西安。早晨起来,和梦梦去喝了好喝的肉丸胡辣汤,汤里有各种蔬菜,白菜、胡萝卜、土豆、肉丸, 再...
    飘曳的舟阅读 331评论 1 2
  • 今天我读了《101个经典智慧故事》——《苏代说秦》和《杯酒释兵权》。 好词:恐慌、威风凛凛、...
    席振桓阅读 151评论 0 0