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之--函数的更多相关文章

  1. Python3 isinstance() 函数

    Python3 isinstance() 函数 描述 isinstance() 函数来判断一个对象是否是一个已知的类型,类似 type(). isinstance() 与 type() 区别: typ ...

  2. Python3 join函数和os.path.join用法

    Python3  join函数和os.path.join用法 os.path.join()连接两个文件名地址的时候,就比os.path.join("D:\","test. ...

  3. Python3 round() 函数

    Python3 round() 函数  Python3 数字 描述 round() 方法返回浮点数x的四舍五入值. 语法 以下是 round() 方法的语法: round( x [, n] ) 参数 ...

  4. Python3 reversed 函数

    Python3 reversed 函数  Python3 内置函数 描述 reversed 函数返回一个反转的迭代器. 语法 以下是 reversed 的语法: reversed(seq) 参数 se ...

  5. Python3 range() 函数用法

    Python3 range() 函数用法  Python3 内置函数 Python3 range() 函数返回的是一个可迭代对象(类型是对象),而不是列表类型, 所以打印的时候不会打印列表. Pyth ...

  6. Python3 chr() 函数

    Python3 chr() 函数 Python3 内置函数 描述 chr() 用一个整数作参数,返回一个对应的字符. 语法 以下是 chr() 方法的语法: chr(i) 参数 i -- 可以是 10 ...

  7. Python3 tuple 函数

    Python3 tuple 函数  Python3 内置函数 描述 tuple 函数将列表转换为元组.. 语法 以下是 tuple 的语法: tuple( seq ) 参数 seq -- 要转换为元组 ...

  8. Python3 bytes 函数

    Python3 bytes 函数  Python3 内置函数 描述 bytes 函数返回一个新的 bytes 对象,该对象是一个 0 <= x < 256 区间内的整数不可变序列.它是 b ...

  9. Python3 pow() 函数

    Python3 pow() 函数  Python3 数字 描述 pow() 方法返回 xy(x的y次方) 的值. 语法 以下是 math 模块 pow() 方法的语法: import math mat ...

随机推荐

  1. QEMU/KVM网络模式(二)——NAT

    在QEMU/KVM中,默认使用IP伪装的方式去实现NAT,而不是用SNAT或DNAT的方式. 1.安装软件包 # yum -y install bridge-utils iptables dnsmas ...

  2. HCIP -- OSPF 总结

    OSPF:Open Shortest path First  :开方式最短路径优先 一.基础知识: 1.使用范围:IGP 2.协议算法特点:链路状态型路由协议,SPF算法 3.协议是否传递网络掩码:是 ...

  3. 磁盘配额,通过ManagementClass("Win32_DiskQuota")

    C# using System; using System.Collections.Generic; using System.Management; namespace ConsoleApp2 { ...

  4. 开发规范(一) 如何记录日志 By 阿里

  5. 关于SM4 加密算法

    国密SM4算法 与DES和AES算法相似,国密SM4算法是一种分组加密算法.SM4分组密码算法是一种迭代分组密码算法,由加解密算法和密钥扩展算法组成. SM4是一种Feistel结构的分组密码算法,其 ...

  6. java文本获取

    public static String Html2Text(String inputString) {         String htmlStr = inputString; // 含html标 ...

  7. 前端网页打印插件print.js(可导出pdf)

    在前端开发中,想打印当前网页的指定区域内容,或将网页导出为多页的PDF,可以借助print.js实现,该插件轻量.简单.手动引入.不依赖其他库.示范项目github:https://github.co ...

  8. Reset 对象属性

    Input Reset 对象 在 HTML 表单中 标签每出现一次,一个 Reset 对象就会被创建. 当重置按钮被点击,包含它的表单中所有输入元素的值都重置为它们的默认值.默认值由 HTML val ...

  9. Java学习日报9.30

    ********************************** double类型精度问题 ********************************** 1 package test; 2 ...

  10. ESXi 中重新启动管理代理

    使用直接控制台用户界面 (DCUI)重启管理代理: 连接到您的 ESXi 主机的控制台. 按 F2 自定义系统. 以 root 身份登录. 使用上下箭头导航至故障排除选项>重新启动管理代理. 按 ...