Python_函数

一、认识函数

print()

round(a, n) :四舍五入保留小数点的n位

help(函数名):查看内置函数的使用方法 (首先在命令行输入 python进入后)

import this:搜索Python之禅

1. 功能性

2. 隐藏细节   

3. 避免编写重复的代码

组织代码 自定义函数

二、函数的定义

1. 使用 def 来定义函数

① 参数列表可以没有

② 使用 return   value  返回函数值;None(没有return)

③ return :只有return,return之后后面的语句是不会执行的

可以返回任意类型的变量,不需要定义

注:

1. 函数需要先定义,再调用

2. 自定义函数名不要和Python系统内置的函数名或者变量名重复

三、让函数返回多个结果

return的几种用法

1. 返回一个或多个变量时,只需在return后面用都好隔开多个变量,此时默认多个变量组成一个tuple

2. 空值(默认)

3. 只有return,后面不接变量时,函数运行终止,即不运行return后面部分

4. 当return返回多个值时,如何取出每一个值,虽然可以用 damages[0] 这种在序列中索引的方法取出每一个值,但可读性差,且每次提取都要重复代码。

最好是给元祖中的每一个元素赋予有意义的新变量名用于接收,下图

这种方法叫做序列解包!

序列解包

把一个tuple拆开,就叫做序列解包,比如:

d = 1, 2, 3     // 此时 d 是一个 tuple

a, b, c = d     // 给a,b,c 赋值,这就叫做序列解包

注!!元素的格式要相等

链式赋值: a = b = c = 1

四、参数

1. 必须参数:

函数参数列表中定义的必须赋值的参数(形参)。必须放在参数列表的前面

形参:

实参:调用函数时,输入的参数

2. 关键字参数:

不用考虑传参的顺序,实现函数的调用。可以在函数调用时明确指出实参是传给哪个形参的

(代码的可读性)

def  add ( x, y):

      ...

      return result

c = add ( y = 3, x = 2)

3. 默认参数:

不必每次输入相同的参数

注意!

1. 所有非默认参数必须在所有默认参数钱,不论定义函数还是调用时都是一样

2. 参数顺序要一致,如果顺序不一致,想向某一特定的默认参数传递参数应该使用关键字参数指定要改变的默认参数,否则将根据默认参数顺序依次匹配。

3. 默认参数和关键字参数不能混合调用

4. 可变参数:

① 在参数列表前加一个“ * ” ,python可以自动把可变参数的实参组装成tuple,输出一个元组。

!!!但是就不能这样传:demo((1,2,3,4,5,6)),这样会得到二维元组

* 的作用是把每个元素拿出来平铺输出 (下图)

② 或者不加 * ,那么在调用函数时用tuple类型。

1 = 2
2 = 1

各种参数调用的顺序:可变参数可以和其他类型的参数结合起来,注意必须参数必须放在最前面,也可使用关键字参数。

但是函数的参数列表尽量简单,不要有多重参数类型混合。!!!

可变参数可以用 for 循环来进行遍历调用  (下图)

squsum(1,2,3)  等于   squsum(*[1,2,3])

5. 关键字可变参数:

格式:def demo(**param)         pass

            或 def demo(**param)    调用时 a = (......)          demo(**param)

这样在调用时可以传递多个关键字参数,此时python会将其转化为字典类型dict。

遍历字典类型数据的方法:(下图)

for  key,value  in  param.items():

        print(key,':',value)

五、变量的作用域

全局变量、局部变量

在函数体内部,局部变量是不分层级的,不能形成块级作用域,可以互相引用。

外部无法使用局部变量。

链式,作用域链:具有链式的特征,具有逐级寻找的过程

注释 c=3   >>> 2

注释 c=2   >>> 1

global 关键字:

在函数内部加上global 关键字,就可以在函数外部访问内部的变量值   >>>   变成全局变量

也可以实现调用模块

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

推荐阅读更多精彩内容

  • 本文翻译自Functional Programming Howto 本文将介绍Python中函数式编程的特性。在对...
    大蟒传奇阅读 2,603评论 4 14
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,637评论 18 139
  • 函数和对象 1、函数 1.1 函数概述 函数对于任何一门语言来说都是核心的概念。通过函数可以封装任意多条语句,而且...
    道无虚阅读 4,550评论 0 5
  • 1.四舍五入:- (void)priceTextValueChange{ float f =[string fl...
    烟雨平生花飞舞阅读 480评论 0 0
  • 从心里的非你不可,到脑子里的可有可无,这就是曾经对你最好的对待。从什么都没有的地方,到什么都没有的地方,其实都是没...
    梦里终是梦阅读 318评论 0 1