python入门基础-初识函数

1.函数

1 函数
# 函数是组织好的,可以重复的使用,用来实现单一或相关联功能的代码段。
# 函数能提高应用的模块性和代码的重复利用率。

 

2.函数的定义

#2 函数的定义
    #1、def关键词开头 + 空格 + 函数名 + () + :
    #2、函数名命名只能包含字母、数字和下划线,但不能以数字开头,并且命名应具有可描述性。
    #3、在函数下面的第一行中应写上该功能和参数的说明。

3.return作用

#3 return关键作用
#return是一个关键字,它在python中的作用是返回一个方法的值。
#return返回值也分没有返回值、返回一个值、返回多个值三种情况
#(1)【没有返回值】在不写return的情况下,调用此函数会返回一个None。

def my_len():   #定义一个函数
    """计算字符串的长度"""
    s1 = '今天是个好日子啊!'
    count = 0
    for i in s1:
        count += 1

print(my_len()) #打印并调用这个函数,因为没有函数中没有return,所以打印出来的None

#(2)【没有返回值】只写return,也会返回None;那没有写return和只写return有什么区别呢?
    #只写return会有一个功能,就是“一旦遇到return,就会结束整个函数!”

def my_print(): #定义函数
    print('111aaa')
    return
    print('222bbb') #这句命令不会被执行,因为上一句是return

print(my_print())   #调用函数,得到的返回值是None

    #return None和中情况一样

#(3)【返回一个值】在return后面加上要返回的值就可以了,注意中间需要存在空格,return支持返回任意类型的值。

def my_len():   #定义函数
    """计算字符串的长度"""
    s1 = '今天是个好日子啊!'
    count = 0
    for i in s1:
        count += 1
    return count    #将count对应的值返回

print(my_len()) #调用函数,打印出函数返回的值

#(4)【返回多个值】return支持返回多个任意数据类型的值。
        #多个变量接收:有多少返回值就用多少个变量接收。
        #用一个变量接收:得到的是一个元组。

#多个变量接收
def ret_demo1():    #定义函数
    s1 = '1','2','3',['11','22']
    return s1

a,b,c,d = ret_demo1()   #用多个变量接收函数的返回值
print(a,b,c,d)      #最终打印出 1 2 3 ['11', '22']

#一个变量接收
def ret_demo2():    #定义函数
    s2 = '1','2','3',['11','22']
    return s2

a = ret_demo2() #用一个变量接收函数返回值
print(a)        #最终打印出一个元组 ('1', '2', '3', ['11', '22'])

4.函数的参数

def my_len(s1):   #s1是形式传参,简称 形参
    """计算字符串的长度"""
    count = 0
    for i in s1:
        count += 1
    return count
str_len = 'hello word!'
print(my_len(str_len)) #str_len是实际传参,简称 实参

#实际传参:指的是 调用 函数时传递的参数称之为“实际传参”,简称实参。
#形式传参:指的是 定义 函数时写的变量名称之为“形式传参”,简称形参。

4.1 参数(站在实参角度)

#参数(站在实参角度)
    #1 按照位置传值

def my_sum(a,b):
    sum = a + b
    return  sum

print(my_sum(10,20))    #按照形参的位置传递参数

    #2 按照关键字传值

def my_sum(a,b):
    print(a,b)
    sum = a + b
    return  sum

print(my_sum(b =10,a = 20))    #按照关键字的方式传递参数

    #3 位置、关键字混合着用
        #注意:1 位置参数必须在关键字前面
             # 2 对于一个形参只能赋值一次

def my_sum(a,b):
    print(a,b)
    sum = a + b
    return  sum

print(my_sum(10,b = 20))    #位置、关键字混合着用

4.2 参数(站在形参角度)

#参数(站在形参角度)
    #1 位置参数必须传值,否则会报错!

def my_sum(a,b):
    print(a,b)
    sum = a + b
    return  sum

print(my_sum())

#结果:TypeError: my_sum() missing 2 required positional arguments: 'a' and 'b'

    #2 默认参数时,如果不传递参数用默认值,如果传递参数就用传递的。

def my_info(name,hobby = 'girl'):
    '''打印人员信息'''
    print(name,hobby)

my_info('小A')
my_info('小C','girl')

#可以发现两次调用函数,对应的hobby是一样的。

    #3 参数陷阱:默认参数是一个可变数据类型

def defult_param(a,l = []):
    l.append(a)
    print(l)

defult_param('小A')
defult_param('小C')


    #4 动态参数:按位置传值多余的参数都由args统一接收,保存成一个元组的形式

def my_sum(*args):  # *args 可以接收多个任意位置参数
    sum = 0
    for i in args:
        sum += i
    return sum

print(my_sum(1,5,10,20))    #向形参传递任意的位置参数。

def my_info(**kwargs):  # **kwargs 可以接受多个关键字参数
    print(kwargs)
    print(kwargs['name'],kwargs['age'])

my_info(name='小A',age='18')

5.总结

(1)定义函数规则

1.定义:def 关键词开头,空格之后接函数名称和圆括号()。
2.参数:圆括号用来接收参数。若传入多个参数,参数之间用逗号分割。
    参数可以定义多个,也可以不定义。
    参数有很多种,如果涉及到多种参数的定义,应始终遵循位置参数、*args、默认参数、**kwargs顺序定义。
    如上述定义过程中某参数类型缺省,其他参数依旧遵循上述排序
3.注释:函数的第一行语句应该添加注释。
4.函数体:函数内容以冒号起始,并且缩进。
5.返回值:return [表达式] 结束函数。不带表达式的return相当于返回 None

def 函数名(参数1,参数2,*args,默认参数,**kwargs):
        """注释:函数功能和参数说明"""
        函数体
        ……
        return 返回值

(2)调用函数规则

1.函数名()
    函数名后面+圆括号就是函数的调用。
2.参数:
    圆括号用来接收参数。
    若传入多个参数:
        应按先位置传值,再按关键字传值
        具体的传入顺序应按照函数定义的参数情况而定
3.返回值
    如果函数有返回值,还应该定义“变量”接收返回值
    如果返回值有多个,也可以用多个变量来接收,变量数应和返回值数目一致

无返回值的情况:
函数名()

有返回值的情况:
变量 = 函数名()

多个变量接收多返回值:
变量1,变量2,... = 函数名()

(3)思维导图总结

posted @ 2017-12-26 19:48  一拳法师  阅读(572)  评论(0编辑  收藏  举报