Python_函数基础

定义一个函数

(1)函数代码块以def关键词开头,后接函数标识符名和圆括号()。

(2)任何传入实参和形参必须放在圆括号中。圆括号中写的是形参。

(3)函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。

(4)函数内容以冒号起始,并且函数体要有缩进。

(5)return[expression]结束函数,选择性地返回一个值给调用者。不带表达式 的return相当于返回None

  语法:

def functionname( parameters ):

    "函数_文档字符串"

    function_suite

    return[expression]

函数实例:

def add(a,b):
    return a+b

print(add(2,3))

函数返回值

函数没有返回值时 默认返回None,函数有多个返回值时 默认以一个元组的形式返回

#函数无返回值,返回None
>>> def hello():
...     print('hello')
...
>>> n=hello()
hello
>>> print(n)
None

#函数返回多个对象,默认以元组的形式返回
>>> def foo():
...     return 'tanner',1000,-98.6
...
 #定义变量接收函数的返回值
>>> x,y,z=foo()
>>> x
'tanner'
>>> y
1000
>>> z
-98.6
>>> m=foo()
>>> m
('tanner', 1000, -98.6)

#函数有多个返回对象时,可定义多个返回对象聚集后的类型
>>> def bar():
...     return ['alice',100,-9]
...
>>> m=bar()
>>> m
['alice', 100, -9]

无参函数

def hello():
    print("hello")
print(hello())

有参函数----调用函数时使用的参数类型如下:

1.必需参数

2.默认参数

3.不定长参数

4.关键字参数

#1.必需参数---调用函数时必需传入的参数,数量必需与声明的一致,不一致会报错

>>> def add(a,b):
...     return a+b
...
>>> add(1,2)
3
#参数传入的顺序可以指定为以下方式
>>> add(b=3,a=2)
5
>>> add(1)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: add() missing 1 required positional argument: 'b'

#2.默认参数---调用函数时,可以不传入该参数的对象,不传的时候使用函数定义的默认值。必须参数
   #注:默认参数一定要使用不可变对象,如果是可变对象,运行会有逻辑错误!

   不可变对象:不可改变的数据类型,如:数字,字符串,元组

   可变对象:如 字典,列表

  》Python传参相当于传值和传引用的一种综合

  》如果函数接收到是一个可变对象(比如字典或列表)的参数,这个时候就是通过传'引用'来传递参数(其实这种归根结底传的也是值,只不过是指向内存空间地址的值)

  》如果函数接收到的是一个不可变对象(比如字符串,元组,数字)的参数,这个时候就是通过'传值'来传递对象,此时如果想改变原变量的值,可以将这些变量申明为全局变量

# 必须参数必须要在默认参数之前,(a, b=5)
>>> def add(a,b=5):
...     return a+b
...
>>> add(1) #a=1,b=5
6
>>> add(1,2) #a=1,b=2
3

#默认参数常见问题---传入可变对象
>>> def add_end(L=[]):
...     L.append('end')
...     return L
...
>>> add_end()#调用结果正常
['end']
>>> add_end()#再次调用结果不正常
['end', 'end']

#解决办法:
>>> def add_end(L=None):
...     if L is None:
...         L = []
...     L.append('END')
...     return L
...
>>> add_end()
['END']
>>> add_end()
['END']

#3.不定长参数

func(*args)-----使用元组作为函数的参数,*args表示是一个元组

def add(a,b=2,*args):
    print('类型:',type(args))
    print('参数个数:',len(args))
    sum=0
    for i in args:
        sum+=i
    print('参数的和:',sum+a+b)

add(1,2,3,4)
add(1,3,4)
add(1,2)

#4.关键字参数

func(**kw)-----使用字典作为函数的参数,**args表示是一个字典

def func(a,b=2,**kw):
    print("kw type=%s"%type(kw))
    print("kw=%s"%str(kw))
    print("name=%s"%str(kw['name']))

func(1,2,name='tanner',sex='m')

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值