• Python随笔9-函数


    函数就是一个程序段,给一个函数名、写一些语句,然后就可以在任意地方使用这个函数任意次数,可以大大的降低工作量

    函数的定义:

      def 函数名(参数):

        语句

    def printMyAddress(address):
        print("my address is %s"% address)
    
    printMyAddress("BJ")    #主程序调用函数

    参数:

      分为形参和实参,所谓形参就是函数定义时的参数(形式上的参数不占内存);

      实参就是实际的参数,在调用函数时传入的参数(占内存),实参分为位置实参和关键字实参

         位置实参就是在有多个形参时,传入的实参按照顺序一一对应,要保准实参的个数和形参个数一致,不然会报错

        关键字实参就是使用=,形参=实参的方式传值,不需要管顺序,只能给一个形参赋一次值

        两种方式可以混合使用,但是位置实参必须在前面

      参数可以有默认值,在调用函数时如果不给函数实参,那么久使用默认值

      当不确定需要传入多少参数时,可以在形参定义时使用*(收集参数),*args(列表),**kwargs(字典)来表示

    def function1(*args,**kwargs):
        print(args)
        print(kwargs)
    
    function1(*[1,2,3,4,5],**{'loc':'BJ'})

    结果:

    (1, 2, 3, 4, 5)
    {'loc': 'BJ'}

    返回值:

      函数是不会直接输出任何东西的,当它处理完数据之后会返回一个值或一组值, 使用return可以给主程序返回函数运行的结果

    def info(name,address):
        return name + " "+ address
    
    print(info('Tom','BJ'))

      结果:

    Tom BJ

    作用域:

      变量分为局部变量和全局变量

      局部变量是在函数内部的,与函数外部无关(同名也无关),在函数运行时创建,函数运行之前或结束后不存在,Python提供内存管理机制处理变量的回收,变量生效的部分叫做变量的作用域

      全局变量是在主程序中定义的变量,Python允许你使用它只要你不试图修改它,如果函数的任意部分想要修改这个变量,那么Python会创建一个局部变量但不会修改全局变量

      

    def calculateTax(price,tax_rate):
        " taxTotal总价格"
        taxTotal = price * tax_rate
        my_price = 100 #函数内部修改my_price
        print("Function inside my_price is :",my_price) #此处打印my_price为全局变量
        return taxTotal
    my_price = int(input("Enter a price:"))
    totalPrice = calculateTax(my_price,8)
    print("price = ",my_price,"Total price = ",totalPrice)
    print("Outside my_price is:",my_price)

      结果:

    Enter a price:5
    Function inside my_price is : 100
    price =  5 Total price =  40
    Outside my_price is: 5

    命名规则:

      1.模块名和包名采用小写字母并且以下划线分隔单词的形式;
        如:regex_syntax,py_compile,_winreg
      2.类名或异常名采用每个单词首字母大写的方式;
        如:BaseServer,ForkingMixIn,KeyboardInterrupt
      3.全局或者类常量,全部使用大写字母,并且以下划线分隔单词;
        如:MAX_LOAD
      4.其余变量命名包括方法名,函数名,普通变量名则是采用全部小写字母,并且以下划线分隔单词的形式命名。
        如:my_thread
      5.以上的内容如果是内部的,则使用下划线开头命名。
        如:__init__,__new__

  • 相关阅读:
    codeforce 272B Dima and Sequence
    Codeforce 270D Greenhouse Effect
    codeforce 270C Magical Boxes
    codeforce 270B Multithreading
    图论--Dijkstra算法总结
    图论--(技巧)超级源点与超级汇点
    图论--Floyd总结
    ZOJ 3932 Handshakes
    ZOJ 3932 Deque and Balls
    ZOJ 3927 Programming Ability Test
  • 原文地址:https://www.cnblogs.com/bigbigtong/p/10085177.html
Copyright © 2020-2023  润新知