Python基础之函数参数
一、实参
1、实参分类:

2、实参基础代码:
def fun01(a, b, c):
print(a)
print(b)
print(c) # 位置传参:实参与形参的位置依次对应
fun01(1, 2, 3) # 序列传参:用*将序列拆分后与形参的位置依次对应
fun01(*[4, 5, 6]) # 关键字传参:实参根据形参的名称进行对应
fun01(b=2, a=1, c=3) # 字典传参:用**将字典拆分后与形参的名字进行对应.
fun01(**{"b":20,"c":"cc","a":1.5}) # 默认参数
def fun02(a = 0, b = 0, c = 0):
print(a)
print(b)
print(c) # 不写参数,使用默认值.
fun02()
fun02(1)
fun02(*[2,3])
# 关键字传参 与 默认传参相结合,可以让调用者只传递自己需要的信息.
fun02(b = 20)
fun02(**{"c":"cc"})
3、示例练习:定义函数,根据天/小时/分钟,计算总秒数
def get_total_second(day=0, hour=0, minute=0):
return day * 24 * 60 * 60 + hour * 60 * 60 + minute * 60 s01 = get_total_second(1, 1, 1)
s02 = get_total_second(1, 1)
s02 = get_total_second(hour=2)
二、形参:
1、形参分类:

2、形参基础代码:
# 默认参数
def fun02(a = 0, b = 0, c = 0):
print(a)
print(b)
print(c) # 不写参数,使用默认值.
fun02()
fun02(1)
fun02(*[2,3])
# 关键字传参 与 默认传参相结合,可以让调用者只传递自己需要的信息.
fun02(b = 20)
fun02(**{"c":"cc"}) # 位置形参
def fun01(a, b, c):
pass # 星号元组形参
def fun02(*args):
# 对于方法内部而言,就是元组
# 对于调用者而言,可以传递数量无限的位置实参.
print(args) # fun02()
# fun02(1)
# fun02(1,2,3,4) # 命名关键字形参:强制实参使用关键字传递.
# a,b 是命名关键字形参
def fun03(*, a, b):
print(a)
print(b) # b 是命名关键字形参
def fun04(*args, b):
print(args)
print(b) # fun03(a = 1,b = 2)
fun04(3, 44, 3, b =22) # 双星号字典形参
def fun05(**kwargs):
# 对于方法内部而言,就是字典,
# 对于调用者而言,可以传递数量无限的关键字实参.
print(kwargs) fun05(a=1, b=2) # 调用
def fun06(*args, **kwargs):
print(args)
print(kwargs) # 数量无限的位置实参,数量无限的关键字实参
fun06(1, 2, 3, 4, 5, a="a", b=1.5) def fun07(a, b, *args, c, d, **kwargs):
print(a)
print(b)
print(args)
print(c)
print(d)
print(kwargs) fun07(1, 2, 3, 4, 5, d="d", c="c")
fun07(1, 2, 3, 4, 5, d="d", c="c", e="ee")
fun07(1, 2, d="d", c="c") print(1,2,3,4,5) # 1 2 3 4 5
print(1,2,3,4,5,"#") # 1#2#3#4#5
3、示例练习:定义函数,整数相加的函数。
def add(*args):
sum = 0
for item in args:
sum += item
return sum re = add(1,2,3,4,45,43)
print(re)
4、自定义列表的排序函数
def sort(list_target):
# 传入的是可变类型
# 修改的是传入的对象
for r in range(len(list_target) - 1):
for c in range(r+1,len(list_target)):
if list_target[r] < list_target[c]:
list_target[r],list_target[c] = list_target[c], list_target[r] list01 = [2,4,4,5,6,7]
sort(list01)
print(list01)
5、英文单词反转,如: how are you -->you are how
def get_words_inversion(words):
list_words = words.split(' ')
list_words.reverse()
str_result = ' '.join(list_words)
return str_result words = 'how are you'
words = get_words_inversion(words)
print(words)
Python基础之函数参数的更多相关文章
- python基础之函数参数,名称空间,以及函数嵌套
函数进阶内容梗概: 1. 函数参数--动态传参 2. 名称空间, 局部名称空间, 全局名称空间, 作⽤用域, 加载顺序. 3. 函数的嵌套 4. gloabal , nonlocal 关键字 1. 函 ...
- python基础之函数参数、嵌套、返回值、对象、命名空间和作用域
函数的使用原则 函数的使用必须遵循:先定义后使用的原则 函数的定义,与变量的定义是相似的,如果没有事先定义函数而直接引用就相当于在引用一个不存在变量名 定义阶段:只检测语法,不执行代码,当出现语法错误 ...
- Python基础之函数参数与返回值进阶
参数作用:如果外界希望在函数内部处理数据,就可以将数据作为参数传入函数内部: 返回值作用:如果希望一个函数函数执行完成后,向外界报告函数的执行结果,就可以使用函数的返回值. 函数的返回值 进阶 利用元 ...
- python基础-4 函数参数引用、lambda 匿名函数、内置函数、处理文件
上节课总结 1.三元运算 name=“name1”if 条件 else “name2” 2.深浅拷贝 数字.字符串 深浅,都一样 2.其他 浅拷贝:只拷贝第一层 深拷贝:不拷贝最后一层 3.set集合 ...
- python基础知识06-函数基础和函数参数
函数基础和函数参数 可迭代对象:序列类型 range . 1.函数的定义 def 函数名(参数): pass return 表达式 ,不能是赋值语句.不写默认返回None.用逗号隔开返回一个元组. 函 ...
- python基础——匿名函数
python基础——匿名函数 当我们在传入函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便. 在Python中,对匿名函数提供了有限支持.还是以map()函数为例,计算f(x)=x2时 ...
- python基础——返回函数
python基础——返回函数 函数作为返回值 高阶函数除了可以接受函数作为参数外,还可以把函数作为结果值返回. 我们来实现一个可变参数的求和.通常情况下,求和的函数是这样定义的: def calc_ ...
- python基础——sorted()函数
python基础——sorted()函数 排序算法 排序也是在程序中经常用到的算法.无论使用冒泡排序还是快速排序,排序的核心是比较两个元素的大小.如果是数字,我们可以直接比较,但如果是字符串或者两个d ...
- python基础——filter函数
python基础——filter函数 Python内建的filter()函数用于过滤序列. 和map()类似,filter()也接收一个函数和一个序列.和map()不同的是,filter()把传入的函 ...
随机推荐
- 云栖社区用机器人爬CSDN的文章?
这个云栖社区的文章https://yq.aliyun.com/ziliao/539322 这篇文章是我13年写的,不知道咋插入图片,见谅. 下面是我的文件记录 分享XAML图标的网站 原创 2013年 ...
- .NET Core----zipkin链路追踪使用
本文主要是说明core怎么使用链路追踪 一.添加nuget包 二.在Startup中添加配置 /// <summary> /// 注册zipkinTrace /// </summar ...
- 快速搭建Docker Registry私有仓库
前提条件: 服务器已经安装Docker(我的服务器是CentOS 7) 服务器已经安装Docker Compose 满足以上条件时就可以开始搭建了: 1. 生成用户密码文件:(运行下面命令后会在当前目 ...
- Rest API
一.前言 在软件行业快速发展的今天,传统的软件授权已经不能足以满足一个IT类的公司的发展.虽然在大部分公司里,它还是现金池的直接源头.但是在可遇见的未来,受摩尔根理论的失效.物联网的发展等影响,应用的 ...
- 解决vuecli3.0构建的vue2.0项目在IE9可能出现的兼容性问题
1,unit8Array等未定义问题 解决办法 <1>npm install @babel/polyfill <2>分别在main.js和vuex的主文件 import '@b ...
- PDF怎么添加文字水印与图片水印
现在是个知识分享时代,但不可避免的盗版也无处不在,不知道在我们大家身边有没有遇到过这样的情况:自己煞费苦心制作的PDF文档不知道在什么时候就会被别人给盗用了,那么如何才能尽量避免这个问题呢?今天带大家 ...
- Jmeter 后置处理器JSON Extractor 提取json的多个值
- UI---设置Activity背景为透明
1.在values下colors中设置透明颜色 <?xml version="1.0" encoding="utf-8"?> <resourc ...
- Redis 常用命令总结
连接操作相关的命令 quit:关闭连接(connection) auth:简单密码认证 持久化 save:将数据同步保存到磁盘 bgsave:将数据异步保存到磁盘 lastsave:返回上次成功将数据 ...
- 深入理解CPP与C中bsearch函数的用法
·使用besearch函数的前提(一些废话) 首先让我们先亮出二分法的定义: https://baike.baidu.com/item/二分法/1364267 以及二分法实现的方法: https:// ...