python3 函数

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)
1.普通参数就是像下面这段函数传入的参数一样,传入函数,没有默认值
1 def f(a):
2     a = a + 1
3     return a
4 
5 b=f(3)
6 print(b)

2、指定参数

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

3、默认参数

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

4、动态参数

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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值