python - 函数一

函数

函数的定义:是通过def 来定义一个函数

把代码装起来
def my_len():    #my_len()为函数名
    l = [1,2,3,4]
    count = 0    
    for i in l:    
        count+=1
    print(count)       #使用函数封装起来的代码为函数体

my_len()  #调用函数

 写函数时的注意事项:写函数时要尽量以功能为导向,结果最好不要直接在函数中打印

# def my_len():   #函数名的定义
#     l = [1,2,3,4,5]
#     count = 0
#     for i in l:
#         count += 1
#     return count    #函数的返回值
#
# ret = my_len()
# print(ret)

 没有返回值:

  不写return等价于return None

  只写一个return 等价于return None

return的作用:1、返回一个值  2、中止一个函数的继续
# 返回一个值:可以返回任意的数据类型,返回什么,就接受什么
# 返回多个值:用一个变量接收返回值,接收到的是一个元祖
# 返回值有多个变量的接收,那么返回值的个数应该和接收变量的个数完全一致
def my_len(l):    #参数:接收参数,形式参数,又称为形参
    print(l)

l = [1,2,3,4]
my_len(l)   #参数:传参数/传参,是实际的参数,实参
print(my_len(l))

 

 例题:写一个函数,接收参数一个列表或字符串,如果这个列表或者字符串的长度大于2,返回True,否则返回False
def func(s_1):
    if len(s_1) > 2:
        return True
    else:return False

print(func([1,2,3,4]))
print(func('12'))

 

参数:
形参和实参
传参数可以传任意的数据类型,并且传什么,就会接收什么
站在传参数的角度上看问题,一共有两种传参的方式
第一种:按照位置传参数
第二种:按照关键字传参数
def f(para):
    print(para)

f(1)  #按照位置传参数
f(para=1)   #按照关键字传参数

 

传多个参数:多个参数分别可以使用任意数据类型
def f2(arg1,arg2):  #站在接收形参的角度上:又可称为位置参数
    print(arg1)
    print(arg2)

f2('abc',arg2=[1,23])

 注意:

按照关键字传参数和按照位置传参数是可以混用的
但是,首先传按位置,再传按关键字的
按照位置传完该接受的参数只能接受一个值,不接受或者重复接受
形参:
# 位置参数
# 数量必须与实参数量一致==》必须传的参数
def classmate(name,sex=''):
    print('姓名:%s,性别:%s'%(name,sex))

classmate('tom')
classmate('simith')
classmate('xiaomei','')

 注意:

默认参数:
默认参数是可以不传的参数
在不传参数的情况下可以使用默认的值
如果传了,就会使用传的值
# # 魔性的用法:默认参数尽量避免使用可变数据类型
# lst = []
# def func(l = lst):
#     l.append(1)
#     print(l)
#
# func()
# func()
# func()
# func()


# lst = []
# def func(l = lst):
#     l.append(1)
#     print(l)
#
# func([])
# func([])
# func([])
# func([])

 

魔性的用法:默认参数尽量避免使用可变数据类型
lst = []
def func(l = lst):
    l.append(1)
    print(l)

func()
func()
func()
func()


lst = []
def func(l = lst):
    l.append(1)
    print(l)

func([])
func([])
func([])
func([])

 


 
posted @ 2017-10-31 22:26  dwenwen  阅读(113)  评论(0编辑  收藏  举报