2018-10-09函数

函数

函数就是对实现某一特定功能的代码段的封装
分类
自定义函数(程序员自己声明实现)
内置函数(系统已经声明实现完成)

1.声明函数的语法

def 函数名(参数列表):
函数体

说明:
a.def --> python中声明函数的关键字

b.函数名 --> 标识符,不能是关键字。遵守PEP8命名规范(所有字母小写,多个单词之间使用下划线隔开)见名知义(看见函数名字知道函数的功能)

c.() --> 固定格式

d.参数列表 --> 形参列表,参数名1,参数名2,...
可以多个也可以没有
参数是用来从函数的外部给函数里面传值用的

e. : -->固定格式

f.函数体 --> 就是实现函数功能的代码段

函数的调用

声明函数的时候,不会执行的函数体。函数只有在函数调用的时候才会执行
语法:
函数名(实参列表)
说明:
函数名 --> 必须已经是声明过的函数
() --> 固定的
实参列表 --> 数据1,数据2.....(用来给形参赋值)
1.格式
函数名(实参列表)

2.函数的调用过程(重点!!)
第一步:回到函数声明的位置
第二步:用实参给形参赋值
第三步:执行函数体
第四步:返回返回值 --> 返回给函数调用表达式
第五步:回到函数调用的位置,接着执行后面的代码

位置参数和关键字参数

位置参数:按照实参的顺序一一个形参赋值
def func1(a,b,c):
    print('a:',a,'b:',b,'c:',c)
func1(10,20,30)
#a: 10 b: 20 c: 30
关键字参数:形参1=值1,形参2 = 值2...
def func1(a,b,c):
    print('a:',a,'b:',b,'c:',c)
func1(c = 30,a = 10,b = 20)
#a: 10 b: 20 c: 30
函数声明的时候可以给参数设置默认值,但是,有默认值的参数,(必须放在参数列表的最后)

有默认值的参数,在调用的时候可以不用传参

def func1(a,c,b=0):
    print('a:',a,'b:',b,'c:',c)
func1(c = 30,a = 10)
#a: 10 b: 0 c: 30

不定长参数 ---> *

参数的个数不确定的时候,可以在形参的前面加*,将这个形参变成一个元祖,用来接收多个参数
可以传多个参数,也可以不传参数

注意如果函数有多个参数,那么不定长参数放在最后
def sum5(*nums):
    print(nums)
sum5(1,2,3)
#(1, 2, 3)


def sum6(a,b,*c):
    print(c,b,a)
sum6(1,'b',1,2,3,4)
#(1, 2, 3, 4) b 1


def sum1(*num):
    print(sum(num))
sum1(88,22)
#110

# 求多个数的和以及平均值
def yt_sum(*nums):
    sum1 = sum(nums)
    average = sum1 / len(nums)
    return sum1, average   # 同时返回和、平均值


a, b = yt_sum(2, 45, 67, 90, 0)
num = yt_sum(34, 56, 67, 34, 56)
print(a, b) #204 40.8
print(num[0], num[1]) #247 49.4

函数的返回值

就是函数调用表达式的值,就是return关键字后面的表达式的值
python中所有的函数都有返回值,返回值默认是None()
执行函数体没有遇到return,函数的返回值就是None;遇到return函数返回值是return后面的值
函数调用表达式 --> 调用函数的语句(函数名(实参))
return --> 关键字,只能写在函数体中。用来返回返回值和结束函数
注意:看一个函数的返回值,只看有没有遇到return。只要没有遇到return,就返回None.遇到return就返回return后面的返回值。

情况一:没有return
def shiyan():
    print('yeyuhhh')  #yeyuhhh

# 将返回值赋给一个变量
a = shiyan() # None (没有遇到return,返回值就是None )
print(a)#yeyuhhh (相当于在调用函数 ,执行打印)
# 直接打印返回值
print(shiyan())# None (没有遇到return,返回值就是None )

情况二:有return

执行函数的时候,一旦遇到return,函数就直接结束,并且把return后面的结果作为返回值

注意:并不是只要函数中有return 就返回return后面的值

def func(n):
    if n % 2:  #(能被4整除就是True,循环执行就结束,不会遇到return)
        return '是奇数'
func(4) #None

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 函数和对象 1、函数 1.1 函数概述 函数对于任何一门语言来说都是核心的概念。通过函数可以封装任意多条语句,而且...
    道无虚阅读 4,679评论 0 5
  • 函数只定义一次,但可能被执行或调用任意次。JS函数是参数化的,函数的定义会包括一个称为形参的标识符列表,这些参数在...
    PySong阅读 873评论 0 0
  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 13,952评论 0 38
  • 姓名: 楼灵芝 单位:杭州熙林服饰 【日精进打卡第212天】 【知~学习】 《六项精进》背诵1遍,共693遍; 《...
    心镜_8ef4阅读 157评论 0 0
  • 目录 上一章 气虽然是有些气着,但他终不能割了与这家的因缘。毕竟父子伦常,是维系世间的根本,也是称量人心的定盘星,...
    步六孤大将军阅读 395评论 8 26