• 函数简介


    函数介绍

    <1>什么是函数

    如果一个程序在不同的地方需要输出“佛祖镇楼”,程序应该怎样设计?

        if 条件1:
            输出‘佛祖镇楼’
    
        ...(省略)...
    
        if 条件2:
            输出‘佛祖镇楼’
    
        ...(省略)...

    如果需要输出多次,是否意味着要编写这块代码多次呢?

    小总结:

    • 如果在开发程序时,需要某块代码多次,但是为了提高编写的效率以及代码的重用,所以把具有独立功能的代码块组织为一个小模块,这就是函数

    函数定义和调用

    <1>定义函数

    定义函数的格式如下:

        def 函数名():
            代码

    demo:

       # 定义一个函数,能够完成打印信息的功能
        def printInfo():
            print '------------------------------------'
            print '         人生苦短,我用Python'
            print '------------------------------------'

    <2>调用函数

    定义了函数之后,就相当于有了一个具有某些功能的代码,想要让这些代码能够执行,需要调用它

    调用函数很简单的,通过 函数名() 即可完成调用

    demo:

        # 定义完函数后,函数是不会自动执行的,需要调用它才可以
        printInfo()

    <3>练一练

    要求:定义一个函数,能够输出自己的姓名和年龄,并且调用这个函数让它执行

    • 使用def定义函数
    • 编写完函数之后,通过 函数名() 进行调用

      函数的文档说明

    >>> def test(a,b):
    ...     "用来完成对2个数求和"
    ...     print("%d"%(a+b))
    ... 
    >>> 
    >>> test(11,22)
    33

    如果执行,以下代码

    >>> help(test)

    能够看到test函数的相关说明

    Help on function test in module __main__:
    
    test(a, b)
        用来完成对2个数求和
    (END)

    函数的嵌套调用

        def testB():
            print('---- testB start----')
            print('这里是testB函数执行的代码...(省略)...')
            print('---- testB end----')
    
    
        def testA():
    
            print('---- testA start----')
    
            testB()
    
            print('---- testA end----')
    
        testA()

    结果:

        ---- testA start----
        ---- testB start----
        这里是testB函数执行的代码...(省略)...
        ---- testB end----
        ---- testA end----

    小总结:

    • 一个函数里面又调用了另外一个函数,这就是所谓的函数嵌套调用 

    • 如果函数A中,调用了另外一个函数B,那么先把函数B中的任务都执行完毕之后才会回到上次 函数A执行的位置

    函数应用:打印图形和数学计算

    目标

    • 感受函数的嵌套调用
    • 感受程序设计的思路,复杂问题分解为简单问题

    思考&实现1

    1. 写一个函数打印一条横线
    2. 打印自定义行数的横线

    参考代码1

    # 打印一条横线
    def printOneLine():
        print("-"*30)
    
    # 打印多条横线
    def printNumLine(num):
        i=0
    
        # 因为printOneLine函数已经完成了打印横线的功能,
        # 只需要多次调用此函数即可
        while i<num:
            printOneLine()
            i+=1
    
    printNumLine(3)

    思考&实现2

    1. 写一个函数求三个数的和
    2. 写一个函数求三个数的平均值

    参考代码2

    # 求3个数的和
    def sum3Number(a,b,c):
        return a+b+c # return 的后面可以是数值,也可是一个表达式
    
    # 完成对3个数求平均值
    def average3Number(a,b,c):
    
        # 因为sum3Number函数已经完成了3个数的就和,所以只需调用即可
        # 即把接收到的3个数,当做实参传递即可
        sumResult = sum3Number(a,b,c)
        aveResult = sumResult/3.0
        return aveResult
    
    # 调用函数,完成对3个数求平均值
    result = average3Number(11,2,55)
    print("average is %d"%result)

    必做题

    1. 编程实现 9*9乘法表

    提示:使用循环嵌套

    2.用函数实现求100-200里面所有的素数

    提示:素数的特征是除了1和其本身能被整除,其它数都不能被整除的数

    3.请用函数实现一个判断用户输入的年份是否是闰年的程序

    提示:
    1.能被400整除的年份 
    2.能被4整除,但是不能被100整除的年份
    以上2种方法满足一种即为闰年

    选做题

    1.用函数实现输入某年某月某日,判断这一天是这一年的第几天?闰年情况也考虑进去

    20160818
    是今年第x天

    2. 编写“学生管理系统”,要求如下:

    必须使用自定义函数,完成对程序的模块化
    学生信息至少包含:姓名、年龄、学号,除此以外可以适当添加
    必须完成的功能:添加、删除、修改、查询、退出
  • 相关阅读:
    spring/spirng boot添加fluent日志-aop
    python添加fluent日志记录
    springboot添加fluent日志记录
    istio添加Fluentd
    linux通过speedtest-cli测试服务器网速
    linux 发送Post请求 json格式
    springboot添加fluent日志记录
    virtaulbox docker虚拟机使用主机代理shandowsocks
    istio-jaeger-python调用链配置
    计算机网络和因特网
  • 原文地址:https://www.cnblogs.com/alexzhang92/p/9345859.html
Copyright © 2020-2023  润新知