A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 于嘉思 初级黑马   /  2019-3-29 23:02  /  1166 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

## 函数作用和定义
就是把曾经写过的功能独立的代码,打包封装,然后直接调用。

        def 函数名():
       
                函数封装的代码
                ......

函数名一定要符合标识符命名规则。尽量使用小驼峰命名法(首个单词首字母小写,其他首字母大写)

函数名和变量名千万不能用一样的名字。否则会冲突。

注意:定义好函数之后,只表示这个函数封装了一段代码而已,不能主动执行。需要进行调用才可以执行。

### 调用
在python中调用函数只需要:函数名()就可以进行调用。

在其他项目或者文件夹中调用之前定义过的函数,需要用import来调用。

## 函数注释
函数的注释不要写在函数的上方,要写在函数的下面。
根据PEP8书写规范,函数与上方的任何代码应保持两个空行。

        def xxx():
                """xxx"""
       
                pass

""""""加上个回车直接就弹出详细的注释名称,然后进行注释就行。

###拓展
用import time来导入工具包
time.sleep()可以使后续的函数或者程序休眠。

## 函数的参数
### 形参和实参
def xxx():括号里面的参数叫做形参。

调用的xxx()这个括号里面的参数就叫做实参。

## 函数的返回值 return
1、在一个函数里return下面的代码不会执行,所以不要写。
2、哪里调用的就把这个值返回到哪里。
3、返回的是值不是变量。在外部无法使用到,除非再用变量定义这个值。

有返回值的函数,比如input一定要用一个变量来接它,否则函数无法输出结果。没有返回值的函数,比如print不能用变量来接。

        def sum_2_num(num1, num2):

            result = num1 + num2

            return result


        sum_result = sum_2_num(10, 20)
        print("输出结果为:%d" % sum_result)

## 函数的嵌套调用
在一个函数内部调用另一个已经定义好的函数。
       
        def test1():
       
                print("")
       
        def test2():
               
                test1()


        test2()

## 位置参数
位置参数顺序很重要,名字对应的就是名字、种类对应的就是种类,否则结果会很搞笑。

### 拓展
如果需要多次调用函数,只需要再次调用就可以

比如:

        def a(x1, x2):
                print(a)


        a(a1, a2)
        a(a3, a4)

## 关键字实参
关键字实参不会使位置混淆,造成笑话。

比如:

        def a(x1, x2):
                print(a)


        a(x1 = a1, x2 = a2)

## 默认值
在函数中,我们直接给形参定一个默认值,这样除非实参在定义一个值,否则我们将直接使用给形参定义的这个默认值。这样我们就不用在重新给实参提供值了。

        def a(x1=a1, x2=a1):
                        .
                        .
                        .

## 让实参变成可选的
为了让一个函数中的实参变成可选的,可在没有提供实参的情况下,使函数仍然能运行,我们需要给这个实参对应的形参定义一个空字符串'',并把它放在最末尾。

比如:
       
        def a(num1, num2=''):
            if num2:
                print(num1, num2)
            else:
                print(num1)
            return a


        a(1, 2)

这样即使只输入一个实参,也能正确的运行。如果第二个实参也提供了,我们只需要在“a(1,2)”输入即可。

## 函数返回字典,列表
函数不仅能返回值,还能返回字典或者列表等较复杂的数据结构。

## 传递列表
将列表传递给函数,函数就直接能访问其内容。

        def greet_users(names):
                for name in names:
                        mag = 'hello'+name.title()+'!'
                        print(mag)


        usernames = ['hannah', 'ty', 'margot']
        greet_users(usernames)

### 函数修改列表
把列表传递给函数,函数就可以对这个函数进行修改,这个修改是永久性的,使你高效率的处理大量数据。

在我们写代码的时候,如果发现一个函数执行的任务过多,我们可以给它頭几个函数,保证每个函数只负责一项任务。然后使用函数的嵌套,在一个函数中调用另一个函数,这样更好。

## 传递任意数量的实参

        def a(*nums):
                print(nums)


        a(1,2,3,4,5)

这里面的*代表创建了名为num一个空元组,可以在里面放任意数量的实参。


**代表创建了一个名为num的空字典。

        def a(**nums):
                print(nums)


        a(q='w')

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马