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__