Python基础函数

函数的定义与调用:


• def关键字,依次写出函数名、括号、括号中的参数和冒号 :
• 在缩进块中编写函数体,函数的返回值用 return 语句返回。
python中如果函数无返回值, 默认返回None

 def  函数名(形参):
     函数体
     return 返回值
 def fun (Name):                         ###形式参数
     print "hello %s" %Name

 fun("dream")                            ###调用函数,实参
 结果:
 hello dream

理解函数


Python 内置了很多有用的函数,我们可以直接调用:

• abs( )
• cmp( )
• 数据类型转换函数:
int( ), float( ), str( ),unicode( ),bool( )

•函数名与变量名类似,其实就是指向一个函数对象的引用
•给这个函数起了一个“别名”:函数名赋给一个变量

空函数


• 定义一个什么事也不做的空函数,可以用 pass 语句
• pass 可以用来作为占位符,还没想好怎么写函数的代码,就可以先放一个 pass ,让代码能运行起来

 def fun():
 pass

参数检查


•调用函数时,如果参数个数不对,Python 解释器会自动检查出来,并抛出 TypeError
• 如果参数类型不对,Python 解释器就无法帮我们检查
• 数据类型检查可以用内置函数 isinstance 实现

函数定义


默认参数:

当不给参数的时候,返回默认的参数

 def fun(name='dream'):
     print name
 fun()
 fun("python")
 结果:
 dream
 python

必选参数

如果不加参数会报错

 def fun(N):
     print N
 fun("dream")
 fun()
 结果:
 dream

 Traceback (most recent call last):
   File "/home/kiosk/PycharmProjects/_03day/_test.py", line 15, in <module>
     fun()
 TypeError: fun() takes exactly 1 argument (0 given)

定义可变参数:

可变参数就是传入的参数个数是可变的,可以是 1 个、2 个到任意个,还可以是 0 个

 def fun(*args):
     print args
 fun("dream",1)
 fun()
 结果:
 ('dream', 1)                              ###可以发现返回是一个元组
 ()

关键字参数:

•关键字参数允许你传入 0 个或任意个含参数名的参数
•这些关键字参数在函数内部自动组装为一个 dict;
•关键字参数用**kwargs

 def fun(**kwargs):
     print kwargs

 fun(a=1, b=2, c=3, d=4)
 结果:
 {'a': 1, 'c': 3, 'b': 2, 'd': 4}                         ###返回的为字典

注意:函数的形式参数的默认值不要是可变参数

 def fun(li=[]):
     li.append("dream")
     return li

 print fun([1, 2, 3])
 print fun()
 print fun()
 结果:
 [1, 2, 3, 'dream']
 ['dream']
 ['dream', 'dream']

参数组合


•参数组合是指可以必选参数、 默认参数、 可变参数和关键字参数一起使用
•参数定义的顺序必须是:必选参数、 默认参数、可变参数和关键字参数

 def fun(name,age=22,*args,**kwargs):
     print name,age,args,kwargs

 fun("dream",18,"1","2","3",a=1, b=2, c=3, d=4)
 结果:
 dream 18 ('1', '2', '3') {'a': 1, 'c': 3, 'b': 2, 'd': 4}

函数解包:


 def fun(*args, **kwargs):
     print args, kwargs

 set = {4, 5, 6}
 li = [1, 2, 3]
 d = {"a": 1, "b": 2, "c": 3, "d": 4}
 fun(*set, **d)
 fun(*li, **d)
 结果:
 (4, 5, 6) {'a': 1, 'c': 3, 'b': 2, 'd': 4}
 (1, 2, 3) {'a': 1, 'c': 3, 'b': 2, 'd': 4}

参数总结


• 必选参数:必须给参数
•默认参数:默认参数一定要用不可变对象
•可变参数:*args 是可变参数,args 接收的是一个 tuple
•关键字参数:**kw 是关键字参数,kw 接收的是一个dict
•对于任意函数,都可以通过类似 func(*args, **kw) 的形式调用它

变量作用域


• 局部变量:只能在函数内部使用的变量
• 全局变量:在整个程序中使用的变量
• global关键字:强制将局部变量转换为全局变量

 a = 1
 b = 100
 def fun():
     a=10

 fun()
 print a
 def fun1():
     global b                                 ###声明这里是全局变量
     b = 1000

 fun1()
 print b
 结果:
 1
 1000
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wielun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值