函数初识

一。函数

函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。

函数能提高应用的模块性,和代码的重复利用率。

# 定义函数
def my_len(s):
    sum = 0
    for i in s:
        sum = sum + 1
    return sum


# 调用函数
s = 'adaasdad'
length = my_len(s)
print(len)

程序在运行时,是调用函数时再去运行定义函数

二。函数的参数

 

1.形式参数

1.默认参数:必须传

2.*args:可以接收任意多个位置参数

3.默认参数:可以不传

4.**kwargs:可以接收多个关键字参数

2.实际参数

按照位置传参

按照关键字传参

3.动态参数

*+参数名,通常为*args

    接收的时按照位置传参的值,组织成一个元组

def sum(*args):
    n = 0
    for i in args:
        n += 1
    return n


print(sum(1, 2))
print(sum(1, 2, 3))
print(sum(1, 2, 3, 4))
def func(*args):
    print(args)


func(1, 2, 3, 4)

#(1,2,3,4)

 

**+参数名,通常为**kwargs

    接收的是按照关键字传参的值,组织成一个字典

def func (**kwargs):
    print(kwargs)


func(a=1, b=2, c=3)

#
{'a': 1, 'b': 2, 'c': 3}
def func(**kwargs):
    print(kwargs)


func(a=1,b=2)
d = {'a':1,'b':2}
func(**d)

#
{'a': 1, 'b': 2}
{'a': 1, 'b': 2}

 

 

# args 必须在 kwargs 之前

6.关键字参数

参数名:‘默认的值’

7.参数的传输与接收

站在实参的角度上,可以按照位置传参,可以按照关键字传参,也可以混合传参,但是混合传参时,必须先按照位置传参,再按照关键字传参,且泵给听一个变量传多个值

站在形参的角度上,位置参数必须传,且有几个参数就传几个值。

默认参数:可以不传,如果不传就是用默认参数,如果传了就用传的参数

def class_mes (name, sex=""):   # sex = '男'即为默认参数
    print("%s:%s" % (name, sex))


class_mes('张三')
class_mes("李四", '')

#
张三:男
李四:女

 

 

三。函数的返回值

1.没有返回值

不写return

只写return,结束一个函数的继续

return None---- --不常用

2.返回一个值

可以返回任意数据类型

只要返回就可以接收到

如果在一个程序中有多个return,只执行第一个

3.返回多个值

多个返回值用多个变量接收,有多少返回值就用多少个变量接收

与用一个变量接收多个返回值,会得到一个元组

def cho(s):
    alpha = 0
    numb = 0
    for i in s:
        if i.isalpha():
            numb += 1
        else:
            alpha += 1
    return alpha, numb


r, r1 = cho("56a4da4sd5")
print(r, r1)

#
5 5




def cho(s):
    alpha = 0
    numb = 0
    for i in s:
        if i.isalpha():
            numb += 1
        else:
            alpha += 1
    return alpha, numb


r = cho("56a4da4sd5")
print(r)

#
(5,5)

 

posted @ 2018-08-07 15:58  albatorss  阅读(101)  评论(0)    收藏  举报