(07)-Python3之--函数
1.定义
函数:实现了某一特定功能。
可以重复使用。
例如:
len() 功能:获取长度。
input() 功能: 控制台输入
print() 功能:输出
语法:
def 函数名称(参数1,参数2.。。。):
实现函数的功能(代码段/块)
[return [值]]
2.函数的参数
2.1位置参数(必传,定义的时候没有数值。)
形参和实参的参数顺序是一一对应的
形式参数,接收具体的数值。会变
例如:
def out_going(id,ticket):
print("请出示身份证和飞机票!")
print("身份证为:" + id,"机票为:" + ticket)
if len(id) != 18:
print("身份证不符合要求!!")
if id is not None and ticket is not None:
print("请上飞机!") # 调用函数
out_going("363636200001023212","东方航空") 结果:
请出示身份证和飞机票!
身份证为:363636200001023212 机票为:东方航空
请上飞机!
2.2默认参数(定义函数时,给形参一个默认的具体数值。)
可传可不传
默认参数要放在所有的必传参数之后
例如:
def out_going(id, ticket, enter="上海", h="5"):
enters = ["上海", "北京", "深圳"]
print("请出示身份证和飞机票!")
print(" 身份证为:" + id + "\n", "机票为:" + ticket + "\n","到达城市为:" + enter + "\n", "耗时:" + h + "\n")
if len(id) != 18:
print("身份证不符合要求!!")
elif enter not in enters:
print("当前城市尚未开放机场!!")
elif id is not None and ticket is not None:
print("请上飞机!") # 调用函数
out_going("363636200001023212", "东方航空") 结果:
请出示身份证和飞机票!
身份证为:363636200001023212
机票为:机票
到达城市为:上海
耗时:5 请上飞机!
2.3指定参数(调用的时候去指定 形参=数据)
形参=值。可以不按位置的顺序来传参
例如:
def out_going(id, ticket, enter="上海", h="5"):
enters = ["上海", "北京", "深圳"]
print("请出示身份证和飞机票!")
print(" 身份证为:" + id + "\n", "机票为:" + ticket + "\n","到达城市为:" + enter + "\n", "耗时:" + h + "\n")
if len(id) != 18:
print("身份证不符合要求!!")
elif enter not in enters:
print("当前城市尚未开放机场!!")
elif id is not None and ticket is not None:
print("请上飞机!") # 调用函数
out_going("363636200001023212", "东方航空",h="10",enter="北京") 结果:
请出示身份证和飞机票!
身份证为:363636200001023212
机票为:东方航空
到达城市为:北京
耗时:10 请上飞机!
2.4可变参数(*args、**kwargs)
参数个数不固定 。调用的时候来确定有几个参数。
*args
在函数内部,是以元组的形式来表示。
放在位置参数,默认参数之后。
例如:
def my_args(*args):
print(args) # 调用函数
my_args(12,34,True,False,[1,2])
my_args("hello",True)
my_args() 结果:
(12, 34, True, False, [1, 2])
('hello', True)
()
**kwargs
在函数内部,是以字典的形式来表达。
一个函数的定义当中,都有*args,**kwargs.先*args,再**kwargs。
例如:
def my_all_args(num,*args,**kwargs):
print(num,args,kwargs)
if "my_class" in kwargs:
if kwargs["my_class"] == "python17":
print("正确!") # 调用函数
my_all_args(12,23,34,45,hello="world",name="python17") 结果:
12 (23, 34, 45) {'hello': 'world', 'name': 'python17'}
3.函数返回(return)
1、代表函数返回数据
2、终止函数调用
3、return 后面可以不用跟任何的数据。实际上代表的是返回的None 。return None
4、调用函数的时候,如果函数有返回值,要主动用变量接收函数的返回值
5、return 可以返回任意类型的数据
6、定义函数的时候,没有用到return.请问调用函数,有返回值?有,为None
(07)-Python3之--函数的更多相关文章
- Python3 isinstance() 函数
Python3 isinstance() 函数 描述 isinstance() 函数来判断一个对象是否是一个已知的类型,类似 type(). isinstance() 与 type() 区别: typ ...
- Python3 join函数和os.path.join用法
Python3 join函数和os.path.join用法 os.path.join()连接两个文件名地址的时候,就比os.path.join("D:\","test. ...
- Python3 round() 函数
Python3 round() 函数 Python3 数字 描述 round() 方法返回浮点数x的四舍五入值. 语法 以下是 round() 方法的语法: round( x [, n] ) 参数 ...
- Python3 reversed 函数
Python3 reversed 函数 Python3 内置函数 描述 reversed 函数返回一个反转的迭代器. 语法 以下是 reversed 的语法: reversed(seq) 参数 se ...
- Python3 range() 函数用法
Python3 range() 函数用法 Python3 内置函数 Python3 range() 函数返回的是一个可迭代对象(类型是对象),而不是列表类型, 所以打印的时候不会打印列表. Pyth ...
- Python3 chr() 函数
Python3 chr() 函数 Python3 内置函数 描述 chr() 用一个整数作参数,返回一个对应的字符. 语法 以下是 chr() 方法的语法: chr(i) 参数 i -- 可以是 10 ...
- Python3 tuple 函数
Python3 tuple 函数 Python3 内置函数 描述 tuple 函数将列表转换为元组.. 语法 以下是 tuple 的语法: tuple( seq ) 参数 seq -- 要转换为元组 ...
- Python3 bytes 函数
Python3 bytes 函数 Python3 内置函数 描述 bytes 函数返回一个新的 bytes 对象,该对象是一个 0 <= x < 256 区间内的整数不可变序列.它是 b ...
- Python3 pow() 函数
Python3 pow() 函数 Python3 数字 描述 pow() 方法返回 xy(x的y次方) 的值. 语法 以下是 math 模块 pow() 方法的语法: import math mat ...
随机推荐
- mysqld程序结构介绍
说明:mysqld程序结构模型就是------> SQL语句的执行过程· 分为三大部分:连接层,SQL层,存储引擎层 #1.连接层功能 (1).TCP/IP或者Socket的连接方式 (2 ...
- 动态SQL基本语句用法
1.if语句 如果empno不为空,则在WHERE参数后加上AND empno = #{empno},这里有1=1所以即使empno为null,WHERE后面也不会报错. 映射文件 <selec ...
- 7. JDK拍了拍你:字符串拼接一定记得用MessageFormat#format
目录 ✍前言 版本约定 ✍正文 DateFormat:日期时间格式化 SimpleDateFormat NumberFormat:数字格式化 DecimalFormat 一.0和#的使用(最常见使用场 ...
- Thymeleaf Shiro标签
记录一下 guest标签 <shiro:guest> </shiro:guest> 用户没有身份验证时显示相应信息,即游客访问信息. user标签 <shiro:user ...
- 熬夜肝了一周!总结了这套对标阿里P8的java秘籍,限时发布3天!
前言 最近老是有粉丝私信我说感觉自己学java越来越难了,这其中有刚毕业的应届生说自己的技术找不到满意的工作,也有在学校的大学习说找不到学习方式,更多的是正在工作的java开发人员说是现在的技术更新太 ...
- 论文阅读 Characterization of Multiple 3D LiDARs for Localization and Mapping using Normal Distributions Transform
Abstract 在这个文章里, 我们细致的比较了10种不同的3D LiDAR传感器, 用了一般的 Normal Distributions Transform (NDT) 算法. 我们按以下几个任务 ...
- java注解学习笔记总结
注解的理解 ① jdk 5.0 新增的功能 ② Annotation 其实就是代码里的特殊标记, 这些标记可以在编译, 类加载, 运行时被读取, 并执行相应的处理.通过使用 Annotation,程序 ...
- Xamarin.Form 5.0: 新功能和控件以及调试改进
上周在.NET Conf 2020,Scott Hunter(.NET),Maddy Leger(微软移动开发工具-Xamarin项目经理)和David Ortinau(首席项目经理,移动开发人员工具 ...
- Docker一秒进阶
tar包: 从tar包导入:docker load < xxxx.tar docker run -d -p 8080:80 --name [名字] -v `pwd`:/usr/share/ngi ...
- Java开发手册之异常日志
1.捕获异常的时候,有一种特殊情况,就是方法体内部所抛出的并不是Exception而是Error,这个时候,上层方法捕获Exception就会失败.所以在某些场合需要捕获更高一级别的Throwable ...