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()把传入的函 ...
随机推荐
- 题解-HAOI2018全套
去冬令营转了一圈发现自己比别人差根源在于刷题少,见过的套路少(>ω<) 于是闲来无事把历年省选题做了一些 链接放的都是洛谷的,bz偷懒放的也是链接 AM.T1 奇怪的背包 Problem ...
- j2ee之监听页面请求
本博客的起因是我想监听浏览器端每个页面都访问了哪些资源~~: 我是个菜鸡,所以我要记在我的小本本上,我怕忘了又~~~: 代码我是写在springboot2.1中的,有兴趣的同学可以玩一下~ 1:代码如 ...
- [转]PostgreSQL数据类型
第六章 数据类型 6.1概述 PostgreSQL 提供了丰富的数据类型.用户可以使用 CREATE TYPE 命令在数据库中创建新的数据类型.PostgreSQL 的数据类型被分为四种,分别是基本 ...
- python基础--numpy.dot
# *_*coding:utf-8 *_* # athor:auto import numpy dot = numpy.dot([0.100, 0.200],2.) print(dot) #[ 0.2 ...
- 我的第一个SpringProject——HelloWorld
我的第一个Spring项目HelloWorld还是花了不少时间,在工具配置上耽误了 我使用的是Eclipse,开始Maven+intellij+Spring搞不太懂 首先要配置Spring: 打开ec ...
- C语言的数组指针
数组(Array)是一系列具有相同类型的数据的集合,每一份数据叫做一个数组元素(Element).数组中的所有元素在内存中是连续排列的,整个数组占用的是一块内存.以int arr[] = { 99, ...
- inotify+rsync文件实时同步报错:usr/local/bin/inotifywait: error while loading shared libraries: libinotifytools.so.0:
解决办法: ln -sv /usr/local/lib/libinotify* /usr/lib/ /usr/lib64/libinotifytools.so.
- C++—模板(1)模板与函数模板
1.引入 如何编写一个通用加法函数?第一个方法是使用函数重载, 针对每个所需相同行为的不同类型重新实现这个函数.C++的这种编程机制给编程者极大的方便,不需要为功能相似.参数不同的函数选用不同的函数名 ...
- CentOS 7 配置静态IP后不生效 & Job for network.service failed
参考:http://tieba.baidu.com/p/3233996339#57290767555l 在CentOS中配置静态IP后不生效. 解决办法:将/etc/sysconfig/network ...
- Scrapyd 改进第二步: Web Interface 添加 STOP 和 START 超链接, 一键调用 Scrapyd API
0.提出问题 Scrapyd 提供的开始和结束项目的API如下,参考 Scrapyd 改进第一步: Web Interface 添加 charset=UTF-8, 避免查看 log 出现中文乱码,准备 ...