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()把传入的函 ...
随机推荐
- 获取Windows服务下当前路径的方法
获取Windows服务下当前路径的方法 获取当前运行程序路径 包含exe Assembly.GetExecutingAssembly().Location; D:\xxxxxx\bin\Debug\x ...
- JVM内存模型分析(一个程序运行的例子)
(.class字节码)类加载到内存之后,内存模型:(ps:.class文件可以通过javap 指令反编译成一个可读文件) 1.java栈,本地方法栈,程序计数器(每个线程私有) 看如下程序: 以该程序 ...
- 【转】iPython入门技巧
[转]http://www.cnblogs.com/cuiyubo/p/6823478.html 学习<利用python进行数据分析> 第三章 IPython:一种交互式计算和开发环境的笔 ...
- js-图片预加载
//图片预加载 //闭包模拟局部作用于 (function($){ function Preload(imgs,options){ this.imgs = (typeof imgs === 'st ...
- java项目----衣服购买
执行bat文件:注意t_temp.properties保存的文件是否为utf8编码native2ascii -encoding UTF-8 t_temp.properties r.properties ...
- 中位数——二维坐标下的中位数lightoj1349
第一次碰到这种题,不知所措,题解链接 => https://www.cnblogs.com/fu3638/p/7426074.html #include<bits/stdc++.h> ...
- MYSQL 单表一对多查询,将多条记录合并成一条记录
一.描述: 在MySQL 5.6环境下,应工作需求:将一个表中多条某个相同字段的其他字段合并(不太会表达,有点绕,直接上图) 想要达到的效果: 实现SQL语句: SELECT a.books, GRO ...
- es6 let 和 const
function test(){ let a = 1 for (let i =0;i<3;i++){ console.log(i) //1,2 } console.log(i) ...
- SQL SERVER 2012更改默认的端口号为1772
打开开始菜单,找到sqlserver的配置管理器,点击打开 按下图配置右边窗口三项: 按下图配置右边三项: 按下图配置右边三项: 点击下图左边的SQL Server网络配置/MSSQLSERVER的协 ...
- sqlserver给用户配置存储过程查看权限
对应的数据库->安全性->用户名右键属性-->安全对象-->指定所有对象-->选择服务器,里边有一个 查看定义(view any definition) 选项,勾上.