我是靠谱客的博主 风趣奇迹,最近开发中收集的这篇文章主要介绍014python-内置函数,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。

函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。

定义一个函数

你可以定义一个由自己想要功能的函数,以下是简单的规则:

  • 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()
  • 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
  • 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
  • 函数内容以冒号 : 起始,并且缩进。
  • return [表达式] 结束函数,选择性地返回一个值给调用方,不带表达式的 return 相当于返回 None。

语法

Python 定义函数使用 def 关键字,一般格式如下:

默认情况下,参数值和参数名称是按函数声明中定义的顺序匹配起来的。 

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

调用:函数名(参数)

 1.函数名明明规范:

小写字母,不能以数字开头,不同的字母制安用下划线隔开

def 函数名():

         函数体       # 你希望这个函数去给你实现什么功能

调用:函数名()

 练习:输出“我是测试”

def ce_shi():
    print('我是测试')

ce_shi()

2.形式参数/位置参数 

(1)函数名中的参数为形参/位置参数时,调用函数名中的参数是实参

def 函数名(形参/位置参数):        # 函数名中存在形参

        函数体                                # 可以调用形参或者赋值,如果赋值则以赋值为准

调用:函数名(实参)                   #当函数名字的参数为形参时,调用函数时实参必传,且以实参为准

 练习1:输出‘huahua是测试’,且函数体调用形参,以实参为准

def ce_shi(name):     # 此时name是形参.调用函数时必须要有参数,可用可不用
    print('{0}是测试'.format(name))    # 调用形参name

ce_shi('huahua')      # 'huahua'是实参,当函数名字的参数为形参时,调用函数时实参必传

练习2:输出‘XXX是测试’,且函数体不调用形参,自己赋值,此时以函数体自己赋值为准

def ce_shi(name):     # 此时name是形参.调用函数时必须要有参数,可用可不用
    print('{0}是测试'.format('暖暖'))    # 可调用形参name,也可自己赋值不调用形参

ce_shi('huahua')      # 'huahua'是实参,当函数名字的参数为形参时,调用函数时实参必传

3.默认参数 

def 函数名(默认参数名='默认参数值'):        # 函数名中存在默认值

        函数体                                 # 可调用默认参数,也可自己赋值,如果赋值则以赋值为准

调用:函数名(实参)                    #当函数名为默认参数时,调用函数时以实参为准

练习1:函数名中存在默认值 且实参也传参时,以实参为准

def ce_shi(name='幺幺'):    # 函数名存在默认值
    print('{0}是测试'.format(name))

ce_shi('huahua')      # 'huahua'是实参,当函数名为默认参数时,调用函数时以实参为准

 练习2:函数名中存在默认值 且实参未传参时,以默认参数为准

def ce_shi(name='幺幺'):    # 函数名存在默认值
    print('{0}是测试'.format(name))

ce_shi()      # 当函数名为默认参数时,实参可不传值

练习3:函数名中存在默认值 且实参未传参的同时函数体自己赋值时,以以函数体赋值为准

def ce_shi(name='幺幺'):    # 函数名存在默认值
    print('{0}是测试'.format('暖暖'))    # 可调用默认参数,也可自己赋值,如果赋值则以赋值为准

ce_shi()      # 当函数名为默认参数时,实参可不传值

4.位置参数与默认参数同时使用

位置参数:没有指定参数时,调用函数时按顺序赋值;

def add(m, n, k):    # 形参
    sum = 0
    for a in range(m, n, k):   # 调用参数
        sum += a
    print(sum)
add(1, 5, 2)   # 实参,# 没有指定参数时,按顺序赋值

 有指定参数值时,调用函数时不是按顺序赋值,需要与def add(m, n, k): 中的参数一致

def add(m, n, k):    # 形参
    sum = 0
    for a in range(m, n, k):   # 调用参数
        sum += a
    print(sum)
add(n=5, m=1, k=2)   # 实参,# 指定参数值时,不是按顺序赋值,需要与def add(m, n, k): 中的参数一致

5.编写函数三部走

 练习题:请把1-100的练习整数相加功能,写成一个函数:

 第一步:先用代码实现功能,还可以选取一组数据来证明自己的diamante是否镇正确

    sum = 0
    for a in range(1, 101):
        sum += a
    print(sum)

 第二步:变成函数,加def 且调用

def add():
    sum = 0
    for a in range(1, 101):
        sum += a
    print(sum)

#方便测试
if __name__ == '__main__':    #主程序的执行入口,只有当前模块下面执行的时候才会执行
    print('主程序的执行入口')
    add()

 第三步:想办法提高代码的复用性

6.return 

 return不能脱离函数

 1.当调用函数时,会返回一个值 即return后面的表达式

(1)正常的打印输出到控制台

def add(a, b):
    print(a + b) # 目前只学习了print输出到控制台 

add(1, 3)

(2)使用返回值

def add(a, b):
    print(a + b)

add(1, 3) + 10

(2-1)输出报错:

TypeError: unsupported operand type(s) for +: 'NoneType' and 'int' ——> 类型错误:不支持+:“NoneType”和“int”的操作数类型

 (2-2)报错原因:

add(1, 3) 已经被print(a + b)输出到控制台,返回值是“NoneType”

(2-3)如何解决上述问题:

此时可以用返回值

def add(a, b):

    return(a + b)   # 返a+b的值

print(add(1, 3) + 10)   #输出返回值+10

(3)可以使用存储值

def add(a, b):

    return(a + b) # 返a+b的值

res = add(1, 3) + 10 # 存储add(1, 3) + 10的值

print(res) # 输出存储值

2.return在函数里面相当于一个结束符,表示函数到此为止,后面的代码不会被执行

(1)return在函数里面相当于一个结束符,表示函数到此为止,函数里面的代码会被执行:

def add(a, b):

    print('函数里面的代码是否会被执行')    #函数里面且return前面的代码被执行

    return(a + b)       # 返a+b的值

res = add(1, 3) + 10    # 存储add(1, 3) + 10的值

print(res) # 输出存储值

(2)return在函数里面相当于一个结束符,表示函数到此为止,后面的代码不会被执行

def add(a, b):

    return(a + b)     # 返a+b的值

    print('函数里面的代码是否会被执行')    #函数里面且return后面的代码不被执行

res = add(1, 3) + 10     # 存储

add(1, 3) + 10的值 print(res)    # 输出存储值

(3)return在函数里面相当于一个结束符,表示函数到此为止,后面的代码不会被执行,函数外面的代码被执行

def add(a, b):

    return(a + b)     # 返a+b的值

print('函数里面的代码是否会被执行')    #函数外面的代码被执行

res = add(1, 3) + 10     # 存储add(1, 3) + 10的值

print(res)     # 输出存储值

 (4)练习:写函数,检查传入的列表的长度,如果大于2,那么仅仅保留前两位长度的内容,并将新内容返回

B = [12, 2, 2, 2]        # 给出一个列表
def check_list(L):
    if len(L) > 2:      # 判断列表长度是否大于2
        n_list = L[0:2]     # 如果列表长度大于2,取列表前两位并赋值给新的变量
        return n_list       # 返回新列表
    else:                   # 如果列表长度小于等于2,直接返回原列表
        return(L)

n_list = check_list(B)     # 存储新列表   ,B为实参,L为形参
print(n_list)            # 输出结果

 7.不定长参数/动态参数

*agrs 为arguments的简写,*不能改变,但是args可以使用其他内容代替

1.不限制参数的个数和长度

2.在函数组织内部以元组的形式表示

def make_sandwich(*args):
    # print(args)     # 函数内部表现形式元组('生菜', '鸡蛋')
    all = ''          # 定义一个空值
    for item in args:     # 遍历动态参数,赋值给item 
        all += item       # 给all赋值item
        all += '、'       # 给all赋值、 
    print('您的三明治里面有:'+all)       # 使用拼接将字符串和值输出 

make_sandwich('生菜', '鸡蛋')       # 实参

 8.关键字参数

key -value形式,关键字**kwargs kw -> key word,注意必须加**,kwargs可以换成其他 在函数里面以字典的形式展示

def kw_function(**kwargs):
    print(kwargs)            # 输出内容字典的形式展示

kw_function(x=1, y=2)     #key - value

练习:

1.不定长参数练习

def add(*L):  #函数名为动态/不定长参数
    sum = 0
    for item in L:   # 遍历参数赋值给item
        sum += item
    print(sum)

add(1, 2, 3, 4, 5)   # 实参为位置参数,默认/指定参数要放在位置参数的后面

2.不定长参数和位置参数一起使用

def add(*l, a):    # 按顺序赋值,参数a为1
    # 当不定长参数后面存在位置参数,实参为位置参数时运行报错:TypeError: add() missing 1 required keyword-only argument: 'a'
    # 报错原因:不定长参数不限制参数个数和长度,可以包含所有参数,此时位置参数a没有值
    # 解决方法:
    # (1)将位置参数a放置在不定长参数前面
    # (2)在实参中给a赋值
    sum = 0
    for item in l:   # 遍历参数赋值给item
        sum += item
    print(a)
    print(sum)

add(1, 2, 3, 4, 5)   # 实参为位置参数,默认/指定参数要放在位置参数的后面





# (1)将位置参数a放置在不定长参数前面
def add(a, *l):    # 按顺序赋值,参数a为1
    sum = 0
    for item in l:   # 遍历参数赋值给item
        sum += item
    print(a)
    print(sum)

add(1, 2, 3, 4, 5)   # 实参为位置参数,默认/指定参数要放在位置参数的后面




# (2)在实参中给a赋值
def add(*l, a):    # 按顺序赋值,参数a为1
    sum = 0
    for item in l:   # 遍历参数赋值给item
        sum += item
    print(a)
    print(sum)

add(1, 2, 3, 4, 5, a=6)   # 实参为位置参数,默认/指定参数要放在位置参数的后面

3.不定长参数、关键字参数和默认参数一起使用

def add(*l, a, **kwargs):
    sum = 0
    for item in l:   # 遍历参数赋值给item
        sum += item
    print(a)
    print(sum)
    print(kwargs)

add(1, 2, 3, 4, 5, a=1, x=6,y=8)   # 实参为位置参数,默认/指定参数要放在位置参数的后面

最后

以上就是风趣奇迹为你收集整理的014python-内置函数的全部内容,希望文章能够帮你解决014python-内置函数所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部