python函数基本操作

1.函数的定义

def 函数名():
    函数体
return 返回值1,返回值2

函数体内部的语句在执行时,一旦执行到return时,函数就执行完毕。
如果没有return语句,函数执行完毕后也会返回结果,只是结果为None。
空函数
如果想定义一个什么事也不做的空函数,可以用pass语句

def fun():
    pass

2.函数的调用

函数名()

注意:定义函数时,函数不执行,调用函数时, 函数才执行

调用函数的时候,如果传入的参数数量不对,会报TypeError的错误

In [1]: abs(1,2)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-1-d2854b9957d6> in <module>()
----> 1 abs(1,2)

TypeError: abs() takes exactly one argument (2 given)

如果传入的参数数量是对的,但参数类型不能被函数所接受,也会报TypeError的错误


In [2]: abs("a")
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-2-05efdfd16af5> in <module>()
----> 1 abs("a")

TypeError: bad operand type for abs(): 'str'

实现打印返回值: print 函数名()

In [4]: def add(x,y):
   ...:     return x+y
   ...: 

In [5]: print add(1,2)
3

3.函数的参数

  • 必选参数
#形式参数x, y
def add(x, y):
    print x + y

#实参 x=1, y=2
add(1 2)
3
  • 默认参数
    把一个参数默认为一个固定的值
#把y作为默认参数,默认值为2
def mypow(x,y=2):
    print x**y
#调用时,只用一个必选参数,可以省略默认参数
mypow(2)

从上面的例子可以看出,默认参数可以简化函数的调用。设置默认参数时,有几点要注意:
必选参数在前,默认参数在后,否则Python的解释器会报错
当函数有多个参数时,把变化大的参数放前面,变化小的参数放后面。变化小的参数就可以作为默认参数
定义默认参数要牢记默认参数必须指向不变对象

  • 可变参数

可变参数就是传入的参数个数是可变的,可以是1个、2个到任意个,还可以是0个,这些可变参数在函数调用时自动组装为一个tuple

#args 实质上是一个元组 ;
def add(*args):
    sum = 0
    for i in args:
        sum += i
    print sum

# 实参 , x=1, y=2
add(1 2 3 4 5 6 2 3 4 5 76)
  • 关键字参数

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

# kwargs 实质上是一个字典 
def inuser(name, age, **kwargs):
    print name, name, kwargs
#在调用该函数时,可以只传入必选参数,也可以传入任意个数的关键字参数
inuser("user1",12,city="xi'an",birth="20180101")
  • 参数组合
在Python中定义函数,可以用必选参数、默认参数、可变参数、关键字参数,这4种参数都可以组合使用。参数定义的顺序必须是:必选参数、默认参数、可变参数、关键字参数。

4.函数返回值

  • 函数中如果没有return时, 默认返回None
  • 返回值为1个
  • 返回多个值
# 实质上 python 只能返回一个值,间接通过元组返回多个值 ;
def fun(*args):
    return max(args), min(args)
print fun(1,2,3,4,5,6)

5.函数的作用域

num = 1
def fun():
    num = 5
fun()
print num

运行效果:
1

由于函数体外的num为全局变量,函数体内的num为局部变量,只作用于函数体内,当在函数体外输出num的值,自然时全局变量num生效

# 全局变量
num = 1
def fun():
# global 声明 num 为全局变量
    global num
    num = 5
fun()
print num

运行效果:
5

注意:global关键字必须要先声明, 再赋值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值