python 函数声明和调用(18)
admin
2023-06-26 15:22:31
0

函数是指代码片段,可以重复调用,比如我们前面文章接触到的type()/len()等等都是函数,这些函数是python的内置函数,python底层封装后用于实现某些功能。

python 函数声明和调用(18)

 

一.函数的定义

在Python中,定义一个函数要使用def语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回;如果没有return语句,默认返回None:

1

2

3

4

def functionname( parameters ):

   "函数说明"

   function_suite

   return [expression]

例如:写一个函数输出’hello world’

1

2

def cusom_print():

    print("hello world")

 

二.函数的调用

当在py文件中,代码一行一行执行,如果遇到函数的定义,编译器会自动跳过,执行函数之后的代码,如果想调用函数直接调用即可。

注意:函数在调用之前必须先声明。python中的内置函数如:print/type函数等等已经在python编译器内部声明并且定义好了,我们只管调用即可,不需要关心具体内部如何实现。示例代码如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

# !usr/bin/env python

# -*- coding:utf-8 _*-

"""

@Author:何以解忧

@Blog(个人博客地址): shuopython.com

@WeChat Official Account(微信公众号):猿说python

@Github:www.github.com

@File:python_function.py

@Time:2019/10/3 10:48

 

@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!

"""

 

def custom_print():

    print("hello world")

    print("hello world")

    print("hello world")

 

custom_print()

输出结果:

1

2

3

hello world

hello world

hello world

代码分析:代码执行到第15行时,编译器发现这是一个函数声明,编译器并不会执行,会自动跳到函数末尾第20行,编译器发现20行是在调用custom_print()函数,会直接进入custom_print()函数执行函数内的代码第16/17/18行直到函数结束,这就是整个运行过程。

 

三.函数传参

函数可以通过外部传递参数,比如:print()函数,可以直接传递字符串并打印字符串;也可以不传递参数,比如上面的custom_print函数,根据自己的需求而定.

函数声明的时候定义的参数叫做形参;外部调用函数传递的参数叫做实参;函数的参数有两者类型:

1.常规参数

常规而言,函数默认有几个形参,在外部调用时就需要传递多少个实参,示例代码如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

def cusom_print1(x):

    print("cusom_print1 : x={}".format(x))

 

def cusom_print2(x,y):

    print("cusom_print2 : x={}".format(x))

    print("cusom_print2 : y={}".format(y))

 

def cusom_print3(x,y,z):

    print("cusom_print3 : x={}".format(x))

    print("cusom_print3 : y={}".format(y))

    print("cusom_print3 : z={}".format(z))

 

 

cusom_print1(1)

cusom_print2(1,2)

cusom_print3(1,2,3)

输出结果:

1

2

3

4

5

6

cusom_print1 : x=1

cusom_print2 : x=1

cusom_print2 : y=2

cusom_print3 : x=1

cusom_print3 : y=2

cusom_print3 : z=3

 

2.缺省参数

在函数参数中,除了常规参数还有缺省参数,即缺省参数有一个默认值,如果外部调用该函数没有给缺省参数传递参数,该形参直接取默认参数值;如果外部调用时给缺省参数传递了参数,那么该形参的值应该等于外部传递的参数,带有缺省参数的函数也被称为缺省函数,示例代码如下:

1

2

3

4

5

6

7

8

9

def cusom_print4(x,y=2,z=3): # x=2,z=3 缺省参数

    print("cusom_print4 : x={}".format(x))

    print("cusom_print4 : y={}".format(y))

    print("cusom_print4 : z={}".format(z))

    print("***"*20)

 

cusom_print4(1)

cusom_print4(1,4)

cusom_print4(1,4,3)

输出结果:

1

2

3

4

5

6

7

8

9

10

11

12

cusom_print4 : x=1

cusom_print4 : y=2

cusom_print4 : z=3

************************************************************

cusom_print4 : x=1

cusom_print4 : y=4

cusom_print4 : z=3

************************************************************

cusom_print4 : x=1

cusom_print4 : y=4

cusom_print4 : z=3

************************************************************

注意:

1.缺省参数都有一个默认值,如果外部没有给缺省参数传递参数,那么直接取默认值;否则等于外部传递的参数值

2.缺省参数必须写在函数形参的末尾

1

2

3

# 错误写法

def cusom_print4(x,y=2,z):

    print("cusom_print4 : x={}".format(x))

 

 

3.不定长参数

除了上面两者,在函数的参数中还有一种不定长参数,即:函数的形参长度/类型都不固定,可能听着有点蒙,这个问题我们留到下一篇文章 python 函数不定长参数 *argc,**kargcs 讲解,暂时不做过多解释。

python 函数声明和调用(18)

 

四.函数返回值return

函数的返回值可有可无,根据自己的使用需求而定。如果函数没有return返回值,默认会返回None,即空值。和 False 不同,它不表示 0,也不表示空字符串,而表示没有值,也就是空值。

 

五.重点总结

1.函数的声明必须在调用之前,否则会报错.

2.注意缺省参数的参数写法

3.函数没有使用return,默认返回None

猜你喜欢:

1.pycharm配置开发模板/设置字体大小

2.python列表推导式

3.python字典推导式

4.python 函数不定长参数 *argc,**kargcs

 

转载请注明:猿说Python » python函数声明和调用


相关内容

热门资讯

美民调:超半数美国人称生活成本... 据凤凰卫视报道,美国政治新闻网5月29日公布的最新民调显示,美国选民仍然不满意总统特朗普的经济政策,...
燃气灶开关无法控制怎么办 燃气灶开关无法控制,这是一种非常危险的情况。这种情况可能会导致燃气泄漏和火灾等严重后果。如果您遇到这...
为什么海尔冰箱冷冻室温度显示一... 这种情况表示的是超温报警灯亮了。也就是说冰箱的冷冻室温度没有降下去,冷冻室温度降到零下8度左右就自动...
西门子冰箱冷冻室温度一直闪烁是... 1、有可能是因为操作不当导致的情况;2、有可能是西门子冰箱显示屏的供电电源或显示屏本身的故障。 ...
冰雪儿点菜柜冷冻室温度灯一直闪 1、可能是因为冰雪儿点菜柜的压缩机遭到了损坏。 2、可能是因为点菜柜的内部电路发生了断路。3、可能是...
海尔冰箱冷冻温度一直闪怎么解决 一直闪可能是超温报警灯亮了,这说明冷冻室的温度出现了异常,一般是温度过高造成的报警,看看冷冻室是否关...
健康证上标注“女性私密”?越界... 南方都市报29日报道,深圳一市民陈某(化名)在深圳市南山区妇幼保健院办理托幼岗位健康证时遭遇乱象。据...
2026香格里拉对话会开幕,中... 第23届香格里拉对话会5月29日晚在新加坡开幕,来自40多个国家和地区的政要、防务官员和专家学者等共...
美国中期选举:谁是骄兵必败,谁... 【文/观察者网专栏作者 周德宇】从特朗普二次执政以来,其民调可以说是一路雪崩,连累着共和党也一起遭殃...
芗城区科协开展全国科技工作者日... 5月27日,芗城区科协联合东铺头街道、瑞京社区等单位,走进芗城实幼东铺头园区,开展芗城区全国科技工作...