python总结5

来源:互联网 发布:linux 黑客技术 编辑:程序博客网 时间:2024/06/16 20:06
1.定义函数使用关键字def,后接函数名和放在圆括号( )中的可选参数列表,函数内容以冒号起始并且缩进。一般格式如下:


def 函数名(参数列表):
  函数体
  return [expression]
注意:参数列表可选,文档字符串可选,return语句可选,默认情况下,参数值和参数名称是按函数声明中定义的的顺序匹配起来的。
例:
def hello():
    print("Hello World!")
hello()
更复杂点的应用,函数中带上参数变量:
def arae(width,height):
    return width*height
    w=10
    h=10
print(arae(10,10))
2.函数变量作用域
在函数内部定义的变量拥有一个局部作用域,在函数外定义的拥有全局作用域。
注意:在函数内部可以引用全局变量,但无法对其赋值(除非用global进行声明)。
例:
a = 5  # 全局变量a
def func1():
    print('func1() print a =', a)
def func2():
    a = 21  # 局部变量a
    print('func2() print a =', a)
def func3():
    global a
    a = 10  # 修改全局变量a
    print('func3() print a =', a)
func1()
func2()
func3()
print('the global a =', a)
3.函数调用
与其他语言中函数调用一样,Python中在调用函数时,需要给定和形参相同个数的实参并按顺序一一对应。




def fun(name, age, gender):
    print('Name:', name, 'Age:', age, 'Gender:', gender, end=' ')
    print()
fun('Jack', 20, 'man')
函数也可以通过keyword=value 形式的关键字参数来调用,因为我们明确指出了对应关系,所以参数的顺序也就无关紧要了。
def fun(name, age, gender):
    print('Name:', name, 'Age:', age, 'Gender:', gender, end=' ')
    print()
fun(gender='man', name='Jack', age=20)
Python中的函数也可以给一个或多个参数指定默认值,这样在调用时可以选择性地省略该参数:
def fun(a, b, c=5):
    print(a + b + c)
fun(1, 2)
fun(1, 2, 3)
普通参数就是像下面这段函数传入的参数一样,传入函数,没有默认值
def f(a):
     a = a + 1
    return a
 b=f(3)
 print(b)
2、指定参数


 #像这样按照顺序传入的话,如果没有指定参数的值那么就会按照顺序分别给a,b,c赋初始值
 d=f(3,4,5)
 print(d)
 #如果像这样指定a,b,c的值,那么它们就是指定参数,可以不按照它们原来的顺序传入
e=f(c=5,b=4,a=3)
print(e)
3、默认参数


#默认参数
#像这样在括号里指定b的初始值,那么b就成为默认参数
 def f(a,b=9):
      sum = a + b
     return(sum)
  #从这里可以看到,我们只传入一个参数3,它就会默认按照顺序赋值给第一个变量a,b就等于原来的默认值9
 c=f(3)
   print(c)
 #当传入两个参数时,按照顺序分别赋值给a,b,那么a=3,b=4,b被重新赋值了
 d=f(3,4)
 print(d)
4、动态参数


  #动态参数
 #动态参数 *args  是指当我们需要传入多个参数时,可以用*args代表多个参数,不用分别在括号里指定多个参数
 def f(*args):
    print(args,type(args))
   d=f(1,2,3)
 #动态参数 **kwargs, 当我们需要传入键值对类型的参数时就可以用**kwargs
 def f(**kwargs):
     print (kwargs,type(kwargs))
 
 d=f(a=3,b=4)
#动态参数之参数的万能模式,这样我们无论怎么传参数几乎都不会报错
 def f(a,*args,**kwargs):
  print(a,args,type(args),kwargs,type(kwargs))
 d=f(22,33,44,k1=55,k2=66)
原创粉丝点击