python_fullstack基础(五)-函数初识

函数初识

1、函数的定义

def func():
    '''
    测试函数
    :return:
    '''
    s = '人生苦短我用python'
    count = 0
    for i in s:
        count += 1
    return count

2、函数的调用

def func():
    '''
    测试函数
    :return:
    '''
    s = '人生苦短我用python'
    count = 0
    for i in s:
        count += 1
    return count

res = func() # 函数名加括号进行调用:func()
print(res)
>>> 12

3、函数的返回值

1、返回值的种类

① 没有返回值,返回None
  • 只有return:结束一个函数的继续
  • 没有return
  • 有return None:不常用
# 只有return:结束一个函数的继续
def func():
    '''
    测试函数
    :return:
    '''
    s = '人生苦短我用python'
    count = 0
    for i in s:
        count += 1
    return


res = func()  # 函数名加括号进行调用:func()
print(res)
>> > None


# 没有return
def func():
    '''
    测试函数
    :return:
    '''
    s = '人生苦短我用python'
    count = 0
    for i in s:
        count += 1


res = func()  # 函数名加括号进行调用:func()
print(res)
>> > None


# 有return None:不常用
def func():
    '''
    测试函数
    :return:
    '''
    s = '人生苦短我用python'
    count = 0
    for i in s:
        count += 1
    return None


res = func()  # 函数名加括号进行调用:func()
print(res)
>> > None
② 有一个返回值
  • 可以返回任何数据类型
  • 只要返回就可以接收到
  • 如果在一个函数中有多个return,只返回第一个
# 有一个返回值
def func():
    '''
    测试函数
    :return:
    '''
    s = '人生苦短我用python'
    count = 0
    for i in s:
        count += 1
    return count
    return '这是第二个返回值,不会返回'


res = func()  # 函数名加括号进行调用:func()
print(res)
>> > 12
③ 有多个返回值
  • 用多个变量接收:有多少返回值就要有多少变量接收
  • 用一个变量接收:接收到的是一个元组
# 有多个返回值
def func():
    '''
    测试函数
    :return:
    '''
    s = '人生苦短我用python'
    count = 0
    for i in s:
        count += 1
    return s, count


res = func()  # 函数名加括号进行调用:func()
print(res)
>> > ('人生苦短我用python', 12)

res1, res2 = func()
print(res1, res2)
>>> 人生苦短我用python 12

4、函数的参数

1、参数的概念

①没有参数:定义函数和调用函数时括号里都不写内容
②有一个参数:传什么就是什么
③有多个参数:位置参数
④顺序:位置参数,*args,默认参数,**kwargs

2、参数的种类

①形参的角度:
  • 位置参数:必须传,且有几个就必须传几个
  • * args:接收的是按照位置传参的值,组织成一个元组
  • 默认参数:可传可不传,不传就按默认值
  • ** kwargs:接受的是按照关键字传参的值,组织成一个字典
# 位置参数
def name_sex(name, sex):
    print('姓名是:' + name + '\n性别是:' + sex)
name_sex('张三','男')
>>>姓名是:张三
>>>性别是:男

# 默认参数
def name_sex(name, sex='男'):
    print('姓名是:' + name + '\n性别是:' + sex)
name_sex('张三')
>>>姓名是:张三
>>>性别是:男

# *args
def name_sex(*args):
    print(args)
name_sex('张三','男')
>>>('张三', '男')

# **kwargs
def name_sex(**kwargs):
    print(kwargs)
name_sex(姓名='张三',性别='男')
>>> {'性别': '男', '姓名': '张三'}
②实参的角度:
  • 按位置传参:
  • 按关键字传参:
  • 按位置、按关键字混合传参:必须按照位置参数,再按照关键字传参,不能将参数赋予多个值
# 按位置传参
def name_sex(name, sex):
    print('姓名是:' + name + '\n性别是:' + sex)
name_sex('张三', '男')
>>>姓名是:张三
>>>性别是:男

# *按关键字传参
def name_sex(name, sex):
    print('姓名是:' + name + '\n性别是:' + sex)
name_sex(sex='男',name='张三')
>>>姓名是:张三
>>>性别是:男

# *按位置、按关键字混合传参
def name_sex(name, sex):
    print('姓名是:' + name + '\n性别是:' + sex)
name_sex('张三',sex='男')
>>>姓名是:张三
>>>性别是:男

5、动态参数的另一个传参方式

1、站在形参的角度上,给变量加上*,就是组合所有传来的值。

def func(*args):
    print(args)

2、站在实参的角度上,给一个序列加上*,就是将这个序列按照顺序打散

func(1,2,3,4,5)
l = [1,2,3,4,5]
func(*l)

6、默认参数的陷阱:默认参数是一个可变数据类型

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

defult_param('python')
defult_param('java')

>>> ['python']
>>> ['python', 'java']

这里写图片描述

这里写图片描述

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值