day 0313函数的初识

1.函数的定义:

定义:def 关键词开头,空格之后接函数名和圆括号(),还有最后一个‘:’

    def是固定的,定义函数的关键字。

    空格-是为了将关键字和函数名分开,必须有的。

    函数名:只能包括字符串,下划线和数字,不能是数字开头,尽量要短,能表达清楚函数功能。

    括号:必须带上

    注释:每一个函数应该对功能和参数进行说明,增恰肮代码的可读性。

2.函数的调用:函数名()   要记得加上括号。

3.函数的返回值:

return 关键字 后面接着是需要返回的值。

情况:

A.没有返回值

不写return的情况下,会默认返回一个None

def fun():
    print('hello world')
fun()
print(fun())
结果:

hello world
hello world
None

return的出现是结束函数的,及时出现return 不写返回值,系统也会返回值None。

def fun():
print('hello world')
return
print('Ada lace')#验证return终止函数运行
fun()
print(fun())
结果: hello world hello world None

B.返回一个值:

def fun():
    s1= 'Ada lace'
    length=0
    for i in s1:
        length+=1
    return length#单一的返回值
print(fun())
结果:
8

C.返回多个值:

#多个值返回会被组织成元组返回给调用者。也可以用多个值来接收。

def fun1():
    return 1,2,3,4
def fun2():
    return 1,[11,22],{'key':159},'ada lace'
print(fun1())
print(fun2())
结果:
(1, 2, 3, 4)#多个值返回会被组织成元组返回给调用者。也可以用多个值来接收。
(1, [11, 22], {'key': 159}, 'ada lace')

关于返回值是多个值  怎么去接收他们的数据:

def fun():
    return 1,[11,22],{'key':159},'Ada lace '
# 返回多个值,用一个变量去接收
ret=fun()
print(ret)
#返回多个值,用多个变量接收,返回几个值就用几个变量去接收
a,b,c,d=fun()
print(a,b,c,d)




结果:
(1, [11, 22], {'key': 159}, 'Ada lace ')
1 [11, 22] {'key': 159} Ada lace 

D.函数的参数:

实参和形参:

函数调用时用的参数就是实参(实际参数)

定义函数时用的参数就是形参(形式参数)

把实际参数传递给形式参数的过程就是传参(传递参数)

A. 实参角度传参:

1.按照位置进行传参:位置参数

def fun(a,b):
    sum=a+b
    return sum
print(fun(11,56))#位置参数直接传递数值
结果:67

2.按照关键字传值:关键字参数

def fun(a,b):
    sum=a+b
    return sum
print(fun(a=56,b=15))#关键字a,b参数直接传递数值
结果:71

3.位置,关键字形式混用:混合传参

注意:这里位置参数必须在关键字参数前面。

          形式参数只能赋值一次。

def fun(a,b):
    sum=a+b
    return sum
print(fun(56,b=11))#位置参数56,关键字参数b=11直接传递数值
结果:67

  

B.形参角度传参:

1.参数内有设置默认值:

def fun(name,age,sex='male'):#将变化很小的值设置成默认值
    print(name,age,sex)
print(fun('张学友',23))#没有传参就返回默认值。
print(fun(name='Blake shelton',age=55,sex='female'))
结果:
张学友 23 male
None
Blake shelton 55 female
None

2.默认参数是一个可变的数据类型

def fun(a,l=[]):#这里L是一个可变的数据类型
    l.append(a)
    print(l)
print(fun(11,l=[11,22,123]))
结果:
[11, 22, 123, 11]
None

  

原文地址:https://www.cnblogs.com/Zhao159461/p/10524402.html