python中的函数

函数是什么

表示的就是显示生活中的行为
函数当定义的的时候不会立即执行
而是调用函数的时候, 函数才会执行。

函数的意义

  1. 函数表示的就是一种行为操作,就是封装了一段代码,如果我们需要使用这段代码就可以通过函数名称直接调用函数,来执行封装的代码。
  2. 降低了代码的重复量,提高了代码的重复使用性能。
  3. 函数的定义: 封装了一段代码的代码块,可以通过名称调用这段代码块。
  • 函数语法
    def 函数名称([参数]):
    函数中要执行的代码
    【return 返回值】

  • 函数的返回值

  1. 不需要参数, 不需要返回值的参数
 # 关窗户的函数: 不需要参数, 不需要返回值
def closeWindow():
          print("关窗户")
  1. 需要参数, 不需要返回值的函数
# 买气球的函数: 需要参数, 但不需要返回值
def buyBubble(money):
      print("买了%s块钱的气球" %money)
  1. 不需要参数, 需要返回值的函数[return 返回结果]
# 去快递的函数:不需要参数, 需要返回值的函数
def getBox():
        print("开始过去去快递")
        return  "拿到快递"
  1. 需要参数, 需要返回值的参数
# 货到付款取快递
def getBoxes(money):
        print("开始过去去快递, 付款%s" % money)
        return "获取到的快递"
  • 函数的调用
  1. 调用没有参数没有返回值的函数
closeWindows()

2.调用有参数没有返回值的函数

buyBubble(50)
  1. 调用没有参数,但是有返回值的函数,返回值要在函数执行完赋值给变量。
box = getBox()
print(">>>%s" % box)
  1. 调用有参数有返回值的函数
boxes = getBoxes(100)
print(">>>>>%s" % boxes)
  • 函数调用的流程图

    image.png

    声明函数的时候,我们需要分析函数是否需要某些资源才能正常执行,否则会出现错误;

  • 形式参数
    就是形式上/名义上需要的这个资源才能执行,这个参数简称 形参

  • 实际参数
    调用函数,发现函数需要提供资源数据才能执行, 此时调用函数时就需要传递一个具体的数据。实际存在的具体数据
    这个具体的数据,简称 实参

  • 变量
    程序中临时存储数据的容器[程序运行过程中,可以存储数据,一旦程序停止运行, 程序中的变量中的数据就会丢失]

  • 全局变量
    声明在函数外部的变量,在任何地方都可以使用访问
    函数中可以直接访问全局变量,但不能直接全局变量就行修改。
    可以使用global关键字,将全局变量分配到函数中进行使用。

  • 局部变量
    声明在函数内部的变量, 在函数内部可以访问。
    通常情况在函数中用于临时存储数据,用于惊醒数据运算。当函数执行完成,这个变量就可以丢弃了。

函数参数默认值

正常情况下,函数中定义了需要几个参数,在调用的时候,就必须传递几个数据。

我们可以给函数的参数设置默认值,如果这个参数没有被传递,就可以是用默认值

def test(arg1, arg2="帅帅"):
                print("打印函数接受的数据: %s, %s " %(arg1, arg2))


test("zhuzhu", "hahah")
test("zhuzhu")

结果是: 
“zhuzhu”, "hahah"
"zhuzhu", "帅帅"
传递数据是以传递的数据为主
不传递时以默认值为主

注意: 没有默认值参数,不能跟在有默认值参数的后面。

函数的可变参数

  • 基本语法
    参数前面加个*。 表示这个变量可以接受0-多个数据。
    可变参数接收到的数据,封装在一个元组中,可以通过下标获取数据
    同时传固定参数和可变参数: 固定参数在前,可变参数在后。
def test(*info):
        print("函数接受到的参数数据" )
        print(info)
        print("~~~~~~~~~~~~~~~~~~~")

test() # 没有参数
test("hello")  # 有两个参数
test("hello", "python") # 有两个参数
test("jerry", 48, "tom and jerry") # 传递不同的参数
image.png

关键字参数(高级的可变参数)

需要在传递数据的时候,给每个参数添加一个变量名称。
可变参数,在参数的前面添加:**

关键字参数,同样也是可变参数,必须放在参数列表的最后
和普通的可变参数不同的是:关键字参数,传递数据时必须添加K=V的形式
接收到的数据,会封装成字典在函数中使用。

def test(**msg):
        print("接受到的数据: ")
        print(msg)
test(name = "jerry")
test(name = "jerry", age= 48)
test(name = "tom", age= 50, sex="man")
image.png

函数中的万能参数

可以接受任何数据当成参数

def test2(*args, **keys):
        print("这个函数,可以接受任何参数")
        print(args, keys)
test2()
test2("tom", "jerry")
test2(name= "tom", name1="jerry")
test2(48, name="shuke")
image.png

返回值操作

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

推荐阅读更多精彩内容