python学习笔记3

本文介绍了Python函数的相关知识,包括四类参数(普通、默认、关键字、收集参数),详细说明了收集参数的不同类型、混合调用顺序和解包问题,还阐述了函数返回值,指出有无返回值的区别及推荐写法,最后介绍了函数文档的作用、写法和查看方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

四类参数

  • 普通参数
  • 默认参数
  • 关键字参数
  • 收集参数

关键字参数开始

  • 语法
    def func(p1=v1,p2=v2… …):
    func_body

      调用函数:
      func(p1=value1,p2=value2... ...)
    
# 关键字参数案例
def stu(name,age,addr):
    print("I am  a student")
    print("我叫{0}, 我今年{1}岁了,我住{2}".format(name, age, addr))

n = "jingjing"
a = 18
addr = "我家"

stu(n, a, addr)


I am  a student
我叫jingjing, 我今年18岁了,我住我家

收集参数

  • 把没有位置,不能和定义时的参数位置相对应的参数,放入一个特定的数据结构中

  • 语法
    def func(*args):
    func_body
    按照list使用方式访问args得到传入的参数

      调用:
      func(p1,p2,p3... ...)
    
# 收集参数代码
# 函数模拟一个学生自我介绍,内容不清楚
def stu(*args):
    print("Hello 大家好")
    print(type(args))
    for item in args:
        print(item)

stu("dwijwiw","ewewew","wewewe")

Hello 大家好
<class 'tuple'>
dwijwiw
ewewew
wewewe
# 收集参数案例
# 说明收集参数可以不带任何实参调用,此时收集参数为空tuple
stu()
Hello 大家好
<class 'tuple'>

收集参数之关键字收集参数

  • 把关键字参数按照字典格式存入收集参数

  • 语法
    def func(**kwargs):
    func_body

      调用:
      func(p1=v1,p2=v2......)
    
  • 访问kwargs按照字典格式访问

# 收集参数案例
# 自我介绍
# 调用的时候需要使用关键字参数调用
# 也可以为空
def stu(**kwargs):
    for k,v in kwargs.items():
        print(k,"---",v)
stu(name="liuying",age=18,addr="dwhwjw")
print("*" * 20)

name --- liuying
age --- 18
addr --- dwhwjw
********************

收集参数混合调用的顺序问题

  • 收集参数,关键字参数,普通参数可以混合使用
  • 使用规则就是,普通参数和关键字参数优先
  • 定义的时候一般找普通参数,关键字参数,收集参数tuple,收集参数dict
# 收集参数混合调用案例
# stu模拟一个学生的自我介绍
def stu(name,age,*args,hobby="没有",**kwargs):
    print("大家好")
    print("我叫{0},我今年{1}大了".format(name,age))
    if hobby == "没有":
        print("我没有爱好")
    else:
        print("我的爱好是{0}".format(hobby))
    print("*" * 20)
    for i in args:
        print(i)
        
    print("#" * 20)
    for k,v in kwargs.items():
        print(k,"---",v)
        
# 开始调用函数      
name = "liuying"
age = 19

# 调用的不同格式
stu(name, age)

stu(name, age, hobby="游泳")

stu(name, age, "wangxiaojing", hobby="游泳", hobby2="djsid", hobby3="ahdaaj")
大家好
我叫liuying,我今年19大了
我没有爱好
********************
####################
大家好
我叫liuying,我今年19大了
我的爱好是游泳
********************
####################
大家好
我叫liuying,我今年19大了
我的爱好是游泳
********************
wangxiaojing
####################
hobby2 --- djsid
hobby3 --- ahdaaj

收集参数的解包问题

  • 把参数放入list或者字典中,直接把list/dict的值放收集参数中
  • 语法: 参看案例
  • 对list进行解包,使用一个* stu(*l)
  • 对dict进行解包,需要两个* 进行解包stu(**l)。
# 收集参数解包问题

def stu(*args):
    print("hahahaha")
    for i in args:
        print(i)

stu("liuying","sudhusdh",19,202)

l = list()
l.append("liuying")
l.append(20)
l.append(230)

stu(l)
hahahaha
liuying
sudhusdh
19
202
hahahaha
['liuying', 20, 230]

返回值

  • 函数和过程的区别
    • 有无返回值
  • 需要用return显示返回内容
  • 如果没有返回,则默认返回None
  • 推荐写法,无论有无返回值,最后都以return结束

函数文档

  • 函数文档的作用是对当前函数使用提供相关的参考信息

  • 文档的写法:

    • 在函数内部开始第一行使用三字符串定义符
    • 一般具有特殊格式
    • 参看案例
  • 文档查看

    • 使用help函数,形如help(func)
    • 使用_doc_,查看案例
# 文档案例
# 函数stu是模拟一个学生的自我介绍的内容
def stu(name, age, *args):
    '''
    这是文档
    这是文档
    这是文档
    '''
    print("this is hanshu stu")
    
# 查看函数文档
help(stu)
stu.__doc__
Help on function stu in module __main__:

stu(name, age, *args)
    这是文档
    这是文档
    这是文档






'\n    这是文档\n    这是文档\n    这是文档\n    '
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值