python 6期作业 函数,,函数总览表(一)  


函数总览表(一)

 技术分享

  函数名的命名规则:

  1、函数名必须由字母下划线数字组成,不能是关键字和数字开头

2、函数名还是要有一定的意义能够简单说明函数的功能

  初识函数定义:

  新建一个函数

技术分享
def mylen():    ‘‘‘计算S1 的长度‘‘‘    s1 = ‘hello world‘    length = 0    for i in s1:        length = length + 1    print(length)    
技术分享

  初识函数调用:  

  通过调用mylen函数,计算hello word的长度

str_len = mylen()print(‘str_len:%s‘%str_len)

  以上代码也只是完成调用,但是函数体内并没有返回值,所以调用为None,使用return关键字返回结果。代码如下: 

    return length   #将函数体内的值赋给mylenstr_len = mylen()print(‘str_len:%s‘%str_len)

  return关键字的作用:

  return是一个关键字

1 接受返回值

2 当一个函数执行到return这一步的时候会终止整个函数的执行 后面有多少代码都不会执行

函数体内不写return的情况下,会默认返回一个None,需要注意的是return和返回值之间要由一个空格,return可以返回任意数据类型的值。

返回多个值: 

可以返回多个值,会被组织成元祖返回,也可以用多个值来接受。

函数的参数:(实参与形参

我们调用函数时传递的这个‘hello world‘被称为实际参数,因为这个是要实际交歌函数的内容,简称实参

定义函数时的S1,只是一个变量的名字,被称为形式参数。因为在定义函数的时候它只是一个形式,表示这里有一个参数,简称形参

参数传递:

传递多个参数

参数可以传递多个,多个参数间用逗号分割。(举例如下)

def mymax(x,y):    the_max = x if x > y else y    return the_maxma = mymax(10,20)print(ma)

  位置参数

  站在实参的角度

  1、按照位置传值  

技术分享
def mymax(x,y):    #此时x=10,y=20    the_max = x if x > y else y    return the_maxma = mymax(10,20)print(ma)
技术分享

  2、按照关键字传值  

技术分享
def mymax(x,y):    #此时x = 20,y = 10    print(x,y)    the_max = x if x > y else y    return the_maxma = mymax(y = 10,x = 20)print(ma)
技术分享

  3、位置、关键字形式混着用  

技术分享
def mymax(x,y):    #此时x = 10,y = 20    print(x,y)    the_max = x if x > y else y    return the_maxma = mymax(10,y = 20)print(ma)
技术分享

  正确用法

  问题一:位置参数必须在关键子参数的前面

  问题二:对于一个形参只能赋值一次

  站在形参的角度

  位置参数必须传值  

技术分享
def mymax(x,y):    #此时x = 10,y = 20    print(x,y)    the_max = x if x > y else y    return the_max#调用mymax不传递参数ma = mymax()print(ma)#结果TypeError: mymax() missing 2 required positional arguments: ‘x‘ and ‘y‘
技术分享

  默认参数

  1、正常使用

    使用方法

    为什么要有默认参数:将变化较小的值设置成默认参数

  2、默认参数的定义  

技术分享
def stu_info(name,sex = "male"):    """打印学生信息函数,由于班中大部分学生都是男生,        所以设置默认参数sex的默认值为‘male‘    """    print(name,sex)stu_info(‘alex‘)stu_info(‘eva‘,‘female‘)
技术分享

  3、参数陷阱:默认参数是一个可变数据类型  

def defult_param(a,l = []):    l.append(a)    print(l)defult_param(‘alex‘)defult_param(‘egon‘)

  动态参数

    按位置传值多余的参数都由args统一接受,保存成一个元祖的形式  

技术分享
def mysum(*args):    the_sum = 0    for i in args:        the_sum+=i    return the_sumthe_sum = mysum(1,2,3,4)print(the_sum)
技术分享
def stu_info(**kwargs):    print(kwargs)    print(kwargs[‘name‘],kwargs[‘sex‘])stu_info(name = ‘alex‘,sex = ‘male‘)

  本章小结

面向过程编程的问题:代码冗余、可读性差、可扩展性差(不易修改)

定义函数的规则:

技术分享
1.定义:def 关键词开头,空格之后接函数名称和圆括号()。2.参数:圆括号用来接收参数。若传入多个参数,参数之间用逗号分割。    参数可以定义多个,也可以不定义。    参数有很多种,如果涉及到多种参数的定义,应始终遵循位置参数、
    *args、默认参数、**kwargs顺序定义。    如上述定义过程中某参数类型缺省,其他参数依旧遵循上述排序3.注释:函数的第一行语句应该添加注释。4.函数体:函数内容以冒号起始,并且缩进。5.返回值:return [表达式] 结束函数。不带表达式的return相当于返回 Nonedef 函数名(参数1,参数2,*args,默认参数,**kwargs): """注释:函数功能和参数说明""" 函数体 …… return 返回值
技术分享

  调用函数的规则:

技术分享
1.函数名()    函数名后面+圆括号就是函数的调用。2.参数:    圆括号用来接收参数。    若传入多个参数:        应按先位置传值,再按关键字传值        具体的传入顺序应按照函数定义的参数情况而定3.返回值    如果函数有返回值,还应该定义“变量”接收返回值    如果返回值有多个,也可以用多个变量来接收,变量数应和返回值数目一致无返回值的情况:函数名()有返回值的情况:变量 = 函数名()多个变量接收多返回值:变量1,变量2,... = 函数名()
技术分享

python 6期作业 函数

评论关闭