Pass算子python 函数
Pass算子python 函数
函数
- 函数是代码的一种组织形式
- 函数应该能完成一项特定的工作,而且一般一个函数只完成一项工作
- 有些语言,分函数和过程两个概念,通俗解释是,有返回结果的是函数,无返回结果的叫过程,python不加以区分
- 函数的使用
- 函数使用需要先定义
- 使用函数,俗称调用
- 参数:负责给函数传递一些必要的数据或者信息
- 形参(形式参数):在函数定义的时候用到的参数,没有具体值,只是一个占位符号
- 实参(实际参数):在调用函数的时候输入的值
- 返回值:调用函数的时候的一个执行结果
- 使用return返回结果
- 如果没有值需要返回,我们推荐使用return None表示函数结束
- 函数一旦执行return,则函数立即结束
- 如果函数没有return关键字,则函数默认返回None
- 参考资料
- python参考资料:headfirst python -> 零基础入门学习python(小甲鱼)、流畅的python -> 习题
- 参数分类
- 普通参数/位置参数
- 默认参数
- 关键字参数
- 收集参数
- 普通参数
- c参见上例
- 定义的时候直接定义变量名
- 调用的时候直接把变量或者值放入指定位置
- 默认参数
- 形参带有默认值
- 调用的时候,如果没有对相应形参赋值,则使用默认值
- 关键字参数
- 语法
- 比较麻烦,但也有好处:
- 不容易混淆,一般实参和形参只是按照位置一一对应即可,容易出错
- 使用关键字参数,可以不考虑参数位置
- 收集参数
- 把没有位置,不能和定义是的参数位置相对应的参数,放入一个特定的数据结构中
- 语法
- 参数名args不是必须这么写,但是,推荐直接用args,约定俗成
- 参数名args前需要有星号
- 收集参数可以和其他参数共存
- 把关键字参数按字典格式存入收集参数
- 语法:
- kwargs一般约定俗成
- 调用的时候,把多余的关键字参数放入kwargs
- 访问kwargs需要按字典格式访问
- 收集参数,关键字参数,普通参数可以混合使用
- 使用规则就是。普通参数和关键字参数优先
- 定义的时候一般找普通参数,关键字参数,收集参数tuple,收集参数dict
- 把参数放入List或者字典中,直接把List/dict中的值放入收集参数中
- 语法:参考案例
- 对dict类型进行解包
- 需要用两个星号进行解包
- 函数的文档的作用是对当前函数提供使用相关的参考信息
- 文档的写法:
- 在函数内部开始的第一行使用三引号字符串定义符
- 一般具有特定格式
- 参考案例
- 文档查看
- 使用help函数,形如 help(func)
- 使用__doc__,查看案例
# 定义一个函数
# 只是定义的话不会执行
# 1. def关键字,后跟一个空格
# 2. 函数名,自己定义,起名需要遵循便令命名规则,约定俗成,大驼峰命名只给类用
# 3. 后面括号和冒号不能省,括号内可以有参数
# 4. 函数内所有代码缩进
print("函数结束了")
函数结束了
# 函数的调用
# 直接写出函数名字,后面小括号不能省略,括号内内容根据情况
func
我是一个函数
爱生活
# 函数定义
func
A
B
函数的参数和返回值
# 形参和实参的案例
# 参数person只是一个符号
# 调用的时候用另一个
person
person
p
# 调用函数,需要把p作为实参传入
hello
p
小明,你好吗?
p
hello
p
小五,你好吗?
pp
hello
pp
小柒,你好吗?
None
# return案例
person
person
p
rst
hello
p
rst
小明,你好吗?
提前结束!
# help负责随时为你提供帮助
Help on built
print
module builtins
print(...)
value
sep
end
file
sys
stdout
flush
False
Prints the values to a stream
or to sys
stdout by
Optional keyword arguments
file
a file
like
stream
defaults to the current sys
stdout
sep
string inserted between values
a space
end
string appended after the last value
a newline
flush
whether to forcibly flush the stream
# 九九乘法表
# version 1.0
o
i
o
o
i
end
1
help(print)
Help on built
print
module builtins
print(...)
value
sep
end
file
sys
stdout
flush
False
Prints the values to a stream
or to sys
stdout by
Optional keyword arguments
file
a file
like
stream
defaults to the current sys
stdout
sep
string inserted between values
a space
end
string appended after the last value
a newline
flush
whether to forcibly flush the stream
# 尝试用函数来打印九九乘法表
o
i
o
o
i
end
jiujiu
jiujiu
1
1
# 改造上面函数
line_num
'''
line_num;代表行号
打印一行九九乘法表
'''
i
line_num
line_num
i
end
o
printLine
o
jiujiu
1
参数详解
o
def
函数名(参数
,参数
,
)
o
函数体
o
o
#
调用
o
函数名(value1,value2,
)
o
o
#
调用的时候,具体值参考的是位置,按位置赋值
o
def
p1
v1
p2
v2
o
func_block
o
#
调用
o
o
o
#
调用
o
value1
o
value2
o
value1
value2
o
def
p1
v1
p2
v2
o
func_body
o
o
被调函数
o
p1
value1
p2
value2
·
def
args
·
func_bady
·
按照List使用方式访问args得到传入的参数
·
·
调用:
·
p1
p2
p3
# 普通参数案例
one
two
three
one
two
normal_para
3
# 默认参数案例1
one
two
three
one
two
three
default_para
default_para
3
100
3
3
# 默认参数案例2
# 报名函数,需要知道学生性别
# 学习python的学生基本都是男生。所以,报名的时候如果没有特别指定,我们认为是男生
name
age
gender
gender
name
age
name
age
# 调用默认参数函数案例
reg
reg
mingyue is
and he is a good student
xiaojing is
and she is a good student
# 关键字参数案例1
one
two
three
one
two
three
keys_para
one
two
three
keys_para
three
two
one
3
30
3
30
# 关键字参数案例2
name
age
addr
name
age
addr
n
a
addr
# 普通参数,只按照位置传递,容易出错
stu
a
n
addr
name
age
addr
name
age
addr
n
a
addr
# 普通参数,只按照位置传递,容易出错
stu_key
name
n
age
a
addr
addr
I am a student
我叫
我今年 jingjing岁了,我住我家
I am a student
我叫 jingjing
我今年
岁了,我住我家
# 收集参数案例
# 函数模拟一个学生进行自我介绍,但具体内容不清楚
# args把他看作一个List
args
args
item
args
item
stu
stu
Hello
大家好,我自我介绍一下,简单说两句:
Liuying
18
北京大通州区
wangxiaojing
single
Hello
大家好,我自我介绍一下,简单说两句:
周大神
# 收集参数案例
# 说明收集参数可以不带任何参数调用,此时收集参数为空tuple
stu
Hello
大家好,我自我介绍一下,简单说两句:
# 如果使用关键字参数格式调用,会出现问题
stu
name
收集参数之关键字收集参数
·
def
kwargs
·
func_body
·
·
#
调用
·
p1
v1
p2
v2
p3
v3
# 收集参数案例
# 自我介绍
# 调用的时候需要使用关键字参数调用
kwargs
kwargs
k
v
kwargs
items
k
v
stu
name
age
addr
lover
work
stu
name
Hello
大家好,我先自我介绍一下:
name
Liuying
age
addr
北京大通州区
lover
王晓静
work
Teaccher
**************************************************
Hello
大家好,我先自我介绍一下:
name
周大神
# 收集参数可以为空案例
stu
Hello
大家好,我先自我介绍一下:
收集参数混合调用的顺序问题
# 收集参数混合调用案例
# stu模拟一个学生的自我介绍
name
age
args
hobby
kwargs
name
age
hobby
hobby
i
args
i
k
v
kwargs
items
k
v
# 开始调用函数
name
age
# 调用的不同格式
stu
name
age
stu
name
age
hobby
stu
name
age
hobby
hobby2
hobby3
Hello
大家好
我叫 Liuying
我今年
岁了。
我没有爱好,so sorry
********************
##############################
Hello
大家好
我叫 Liuying
我今年
岁了。
我的爱好是游泳
********************
##############################
Hello
大家好
我叫 Liuying
我今年
岁了。
我的爱好是游泳
********************
王晓静
刘石头
##############################
hobby2
烹饪
hobby3
跟不同女生聊天
收集参数的解包问题
# 收集参数的解包问题
args
n
i
args
i
n
n
i
# stu("Liuying", "Wangxiaojing", 19, 20)
l
stu
l
# 此时,args的表示形式是字典内一个List类型的元素,即 args = (["Liuying", 19, 23, "Wangxiaojing",])
# 很显然跟我们最初的想法违背
# 此时的调用,我们就需要解包符号,即调用的时候前面加一个星号
stu
l
哈哈哈哈
0
哈哈哈哈
0
Liuying
1
19
2
20
3
Wangxiaojing
同理,dict类型收集参数一样可以解包,但是
函数文档
# 文档案例
name
age
args
'''
这是第一行
这是第二行
这是第三行
'''
# 查看函数文档
stu
stu
__doc__
Help on
stu
module __main__
name
age
args
这是第一行
这是第二行
这是第三行
'\n 这是第一行\n 这是第二行\n 这是第三行\n '
name
age
'''
这是文档的文字内容
:param name: 表示学生的姓名
:param age: 表示学生的年龄
:return: 此函数没有返回值
'''
stu
stu
__doc__
Help on
stu
module __main__
name
age
这是文档的文字内容
param name
表示学生的姓名
param age
表示学生的年龄
此函数没有返回值
None
********************
这是文档的文字内容
param name
表示学生的姓名
param age
表示学生的年龄
此函数没有返回值
人工智能芯片与自动驾驶
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
2020-04-12 色差计算度量
2020-04-12 HDR sensor 原理介绍
2020-04-12 语义分割环境搭建