函数基础

函数基础

函数定义

def func():
    dr()  # 不属于语法错误,不会报错
    print('*'*10)

函数用来封装一些代码,只会检测语法,不调用的话不会执行代码。

def func():
    dr()  # 会报错,dr没有定义
    print('*'*10)
func()  # 调用执行函数代码

执行函数代码

定义函数的两种形式

无参函数

定义函数时参数是函数体接收外部传值的一种媒介,其实就是一个变量名。定义时无参,意味着调用时也无需传入参数。

如果函数体代码逻辑不需要依赖外部传入的值,必须得定义成无参函数。

def func():
    print('hello nick')
func()

hello nick

有参函数

在函数定义阶段括号内有参数,称为有参函数,调用时意味着也必须传入参数。

如果函数代码逻辑需要依赖外部传入的值,必须得定义成有参函数。

def sum_self(x,y):
    '''求和'''
    res=x+y
    print(res)
sum_self(1,2)

3

函数的返回值

什么是返回值

简单来说就是,函数内部代码经过一系列逻辑处理获得的结果。

为什么要有返回值

如果需要在程序中拿到函数的处理结果做进一步的处理,则需要函数必须要有返回值。

需要注意的是:

  • return是一个函数结束的标志,函数内可以有多个return,但只要执行到return,函数就会停止
  • return的返回值可以返回任意数据类型
  • return的返回值无个数限制,即可以使用逗号隔开返回多个值

0个:返回None

1个:返回值是该值本身

多个:返回值是元组

# 返回一个值
def max_self(x,y):
    if x>y:
        return x
    else:
        return y

a=max_self(5,10)*2
print(a)

20

# 返回多个值
def func():
    name='nick'
    age=19
    hobby_list=['read','run']
    return name,age,hobby_list

name,age,hobby_list=fun()
print(name,age,hobby_list)

('nick',19,['read','run'])

可变长参数

可变长实参

def self_max(a,b,c,d,e,f,g,h,k,x=1,y=3,z=4):  # 默认参数
    print(a,b,c,d,e,f,g,h,k,x,y,z)

a=[1,2,3,4,5,6,7,8,9]  # *把这个列表内的元素一个一个取出来,然后一个一个传给这个函数
b={'x':10,'y':12}  # **会把这个字典打散成键值对的形式作为实参传给函数
self_max(*a,**b)  # (1,2,3,4,5,6,7,8,9,x=10,y=12)

1,2,3,4,5,6,7,8,9,10,12,4

可变长形参

def self_max(*args,**kwargs):  # *后面必须写args,**后面必须写kwargs,这是约定俗成的一种规范
    print(args)  # args接收位置实参,然后以元组形式保存
    print(kwargs)  # kwargs接收关键字实参,然后以字典形式保存
self_max(1,2,3,4,5,6,7,x=6,y=8,z=20,a=10,c=1000)

(1, 2, 3, 4, 5, 6, 7)

{'x': 6, 'y': 8, 'z': 20, 'a': 10, 'c': 1000}

posted @ 2019-05-29 19:59  小小罗code  阅读(162)  评论(0编辑  收藏  举报