zoukankan      html  css  js  c++  java
  • python函数

    什么是函数

          函数其实是一把工具

    使用函数的好处:

          1.解决代码冗余问题。

          2.使代码的结构更清晰

          3.容易管理

    函数的使用必须遵循:先定义,后调用

    函数定义语法:

            def  函数名(参数1,参数2....):

                        '''注释:声明函数'''

                           逻辑代码

                          return 返回值

            def:defind 定义。

             函数名:必须看其名知其意。

             ():接受外部传入的参数

             注释:用来声明函数的作用。

             return :返回给调用者的值

    定义函数的三种形式:

                  1.无参函数

                             不需要接受外部传入的参数。

                   2.有参函数

                              需要接受外部传入的参数。

                   3.空函数

                       pass

    1.无参函数

        def login():

                  user=input('请输入用户名').strip()

                   pwd=input('请输入密码').strip()

                   if user=='tank' and pwd=='123':

                            print('login successful!')

                   else:

                             print('login error!')

    #函数的内存地址

    print(login)

    #函数调用

    login()

    2.有参函数

    #username,password用来接受外部传入的值

       def  login(username,password):

            user=input('请输入用户名').strip()

             pwd=input('请输入密码').strip()

             if  user==username  and  pwd==password:

                    print('login successful!')

              else:

                     print('login error!')

    #若函数在定义时需要接受参数,调用者必须为其传参

    login('tank','123')

    3.空函数

     def login():

            #代表什么都不做

            pass

    参数的参数:

    #在定义阶段:x,y称之为形参

     def  func(x,y):

              print(x,y)

    #在调用阶段:10,100称之为实参

    func(10,100)

    位置参数:

                位置形参

                位置实参

                必须按照位置--传参

    #在定义阶段:位置形参

    def func(x,y):      

            print(x,y)

    #在调用阶段:10,100称位置实参

    func(10,100)

    关键字参数:

              关键字实参

               按照关键字传参

    #位置形参x,y

    def  func(x,y):

            print(x,y)

    #在调用阶段:x=10,y=100称为关键字参数

    func(y=111,x=10)  

    #不能少传

    #func(y=111)#报错

    #不能多传

    默认参数

               在定义阶段,为参数设置默认值

     def foo(x=10,y=20):

             print(x,y)

    #不传参,则使用默认参数

    foo()

    #传参,使用传入的参数

    foo(200,300)

    函数的嵌套定义:

              在函数内部定义函数

    函数对象:

     函数的内存地址称之为函数对象

    函数的名称空间:

          内置:

                 python解析器自带的都称之为“内置名称空间”。

          全局:

                  所有顶着头写的变量,函数...都称之为“全名称空间”。

          局部:

                  在函数内部定义的,都称为“局部名称空间”

    名称空间加载顺序:
                内置->全局名称空间->局部名称空间
    名称空间查找顺序:
                 局部名称空间->全局名称空间->内置

    #函数的嵌套定义
    def func1():
        print('from func1...')
        def func2():
            print('from func2...')
    
    #函数对象
    print(func1)
    def f1():
        pass
    def f2():
        pass
    dic1={'1':f1,'2':f2}
    choice=input('请选择功能编号:')
    if choice=='1':
        print(dic1[choice])
        dic1[choice]()
    
    elif choice=='2':
        print(dic1[choice])
        dic1[choice]()
    
    x=10
    #名称空间
    #函数的嵌套定义
    def func1():
        #x=20
        print('from func1...')
        print(x)   #报错 代码时自上由下执行,print(x)无法引用x=30,所以报错
        x=30 
        def func2():
            print('from func2...')
    func1()
    
  • 相关阅读:
    唐伯虎
    朱元璋
    [再寄小读者之数学篇](2014-06-28 证明级数几乎处处收敛)
    [家里蹲大学数学杂志]第053期Legendre变换
    About the Importance of Aim in Life
    An Apple a day keeps the doctor away
    Love Me,Love My Dog
    关于工作
    关于失败
    Erdos
  • 原文地址:https://www.cnblogs.com/chmusk/p/12465878.html
Copyright © 2011-2022 走看看