python之函数的参数
1.位置参数:
例如计算一个整数的平方:
def power(x)
return x * x
显然参数x就是一个位置参数,如果要是计算5*5*5..............*5 ,这个函数就太麻烦了,我们可以再定义下面这个函数来解决:
def power(x, n):
s = 1
while n > 0:
n = n - 1
s = s * x
return s
修改后的函数,有两个位置参数x和n ,调用函数时,传入的两个值按照位置顺序依次赋给参数x和n
>>>power(5,3)
125
2.默认参数
假设我们总是想要求一个数的立方和,这时候我们可以把函数中的第二个位置参数设置为默认值3
ps:定义默认参数要牢记一点:默认参数必须指向不变对象!
def power(x, n=3):
s = 1
while n > 0:
n = n - 1
s = s * x
return s
>>>power(2)
8
3.可变参数【以从下面这个例子学习】
例:计算计算a2 + b2 + c2 + ……
方法一:通过list或tuple传参数

显然这样调用的时候,总是需要构造一个list或tuple比较麻烦,为此引入可变参数的概念,从下面这个例子体会:
方法二:定义函数时把参数定义为可变参数【其实也就是在可变参数前面加个*号】

PS:可以在list或tuple前面加一个*号,把list或tuple的元素变成可变参数传进去:

4.关键字参数【例子学习】
可变参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple。而关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict:

运行结果:
name: Michael age: 30 other: {}
name: ttwang age: 23 other: {'city': 'Hangzhou'}
name: Jane age: 22 other: {'gender': 'M', 'job': 'Engineer'}
关键词参数有什么用:它可以扩展函数的功能。比如,在person函数里,我们保证能接收到name和age这两个参数,但是,如果调用者愿意提供更多的参数,我们也能收到。试想你正在做一个用户注册的功能,除了用户名和年龄是必填项外,其他都是可选项,利用关键字参数来定义这个函数就能满足注册的需求。
和可变参数一样,也可以先组装出一个dict,然后,把该dict转换为关键字参数传进去【简单调用如下】:

5.命名关键字参数
1.如果想要限制关键字参数的名字,需要用到命名关键词参数,命名方式和调用方式,见下面的例子:

2.注意: 调用时必须传入参数名city和job否则报错:

报错信息:

由于调用时缺少参数名city和job,Python解释器把这4个参数均视为位置参数,但person()函数仅接受2个位置参数。
3.命名关键字参数可以直接给出默认值,调用时就可以不用写入了:
#函数定义,直接给出命名关键字参数的默认值
def person(name, age, *, city='Beijing', job):
print(name, age, city, job) #函数调用形式:
#由于命名关键字参数city具有默认值,调用时,可不传入city参数:
>>> person('Jack', 24, job='Engineer')
Jack 24 Beijing Engineer
4.参数组合
在Python中定义函数,可以用必选参数、默认参数、可变参数、关键字参数和命名关键字参数,这5种参数都可以组合使用。但是请注意,参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数。【详见】
5.小结【转自廖雪峰官方网站】
6.练习【求一个或者两个以上数的乘积】

python之函数的参数的更多相关文章
- python基础——函数的参数
python基础——函数的参数 定义函数的时候,我们把参数的名字和位置确定下来,函数的接口定义就完成了.对于函数的调用者来说,只需要知道如何传递正确的参数,以及函数将返回什么样的值就够了,函数内部的复 ...
- Python进阶-函数默认参数
Python进阶-函数默认参数 写在前面 如非特别说明,下文均基于Python3 一.默认参数 python为了简化函数的调用,提供了默认参数机制: def pow(x, n = 2): r = 1 ...
- 深入理解python中函数传递参数是值传递还是引用传递
深入理解python中函数传递参数是值传递还是引用传递 目前网络上大部分博客的结论都是这样的: Python不允许程序员选择采用传值还是传 引用.Python参数传递采用的肯定是"传对象引用 ...
- Python中函数传递参数有四种形式
Python中函数传递参数有四种形式 fun1(a,b,c) fun2(a=1,b=2,c=3) fun3(*args) fun4(**kargs) 四种中最常见是前两种,基本上一般点的教程都会涉及, ...
- 讲讲python中函数的参数
python中函数的参数 形参:定义函数时代表函数的形式参数 实参:调用函数时传入的实际参数 列如: def f(x,y): # x,y形参 print(x, y) f(1, 2) # 1, 2 实参 ...
- python 中函数的参数
一.python中的函数参数形式 python中函数一般有四种表现形式: 1.def function(arg1, arg2, arg3...) 这种是python中最常见的一中函数参数定义形式,函数 ...
- python中函数的参数解析
python中函数的各种参数梳理: 1.形参:函数定义时传入的参数 2.实参:函数调用时传入的参数 (有形参必传实参,形参里自身特点可不传的,可传可不传) 3.缺省参数:不传为默认值,传了会覆盖(下面 ...
- python 之 函数的参数
函数的参数好几种类型:包括位置参数.默认参数.可变参数.关键字参数.命名关键字参数. 廖大神python学习笔记,大神网站:百度搜索“廖雪峰的官网” 1.位置参数:调用函数时根据函数定义的参数位置来传 ...
- Python基础 --函数的参数
定义函数的时候,我们把参数的名字和位置确定下来,函数的接口定义就完成了.对于函数的调用者来说,只需要知道如何传递正确的参数,以及函数将返回什么样的值就够了,函数内部的复杂逻辑被封装起来,调用者无需了解 ...
- python中函数的参数
函数参数(一) 思考一个问题,如下: 现在需要定义一个函数,这个函数能够完成2个数的加法运算,并且把结果打印出来,该怎样设计?下面的代码可以吗?有什么缺陷吗? def add2num(): a = 1 ...
随机推荐
- 网络请求 爬虫学习笔记 一 requsets 模块的使用 get请求和post请求初识别,代理,session 和ssl证书
前情提要: 为了养家糊口,为了爱与正义,为了世界和平, 从新学习一个爬虫技术,做一个爬虫学习博客记录 学习内容来自各大网站,网课,博客. 如果觉得食用不良,你来打我啊 requsets 个人觉得系统自 ...
- easyUI的分页,只显示第X 共Y页。改为显示 第X 页 共Y页
如下图,easyUI的分页,只显示第X 共Y页. 需求需要显示 第X 页 共Y页. 解决办法:在easyui-lang-zh_CN.js更改以下代码,即可.也就是在 “共{pages}页”前面加个 “ ...
- android IPC 机制 (开发艺术探索)
一.IPC 机制介绍 IPC是Inter-Process Communication的缩写,含义就是进程间通信或者跨进程通信,是指两个进程之间进行数据交换的过程.那么什么是进程,什么是线程,进程和线程 ...
- androidStudio 打包与混淆
在gradle中通过makeJar打包 不同模块的gradle都支持打包功能,application module的build.gradle中引入的是com.android.application插件 ...
- Linux 上安装 Couchbase服务
down: http://www.couchbase.com/downloads/ doc: http://docs.couchbase.com/archive-index/ forums: htt ...
- Disconf 学习系列之Disconf 的主要目标
不多说,直接上干货! 部署极其简单:同一个上线包,无须改动配置,即可在 多个环境中(RD/QA/PRODUCTION) 上线: 部署动态化:更改配置,无需重新打包或重启,即可 实时生效: 统一管理:提 ...
- nodejs + express 热更新
以前node中的express框架,每次修改代码之后,都需要重新npm start 才能看到改动的效果,非常麻烦,所以这里引入nodemon模块,实现了不用重启也能自动更新这样的好处 1.全局安装no ...
- ID3、C4.5和CART决策树对比
ID3决策树:利用信息增益来划分节点 信息熵是度量样本集合纯度最常用的一种指标.假设样本集合D中第k类样本所占的比重为pk,那么信息熵的计算则为下面的计算方式 当这个Ent(D)的值越小,说明样本集合 ...
- textarea的placeholder属性内容折行显示(PC和移动端端)
1.PC端折行方法 placeholder="字体 字体" 可以使其折行显示 2.移动端折行方法 webkit内核 textarea::-webkit-input-placeh ...
- 从数据库表中随机获取N条记录的SQL语句
Oracle: select * from (select * from tableName order by dbms_random.value) where rownum < N MS SQ ...
