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__

原文地址:https://www.cnblogs.com/bigbigtong/p/10085177.html