Python基本语法_函数_参数的多类型传值
前言
上一篇主要介绍了Python函数的参数类型,本篇继续学习Python函数多类型传值。
目录
- 前言
- 目录
- 软件环境
- 参数的多类型传值
- 向函数传递Tuple
- 向函数传递List
- 向函数传递Dictionary
软件环境
- 系统
- UbuntuKylin 14.04
- 软件
- Python 2.7.4
- IPython 4.0.0
参数的多类型传值
一般而言,形参和实参的数量要一致。但是当实参为序列数据类型时,我们可以将多个实参传递到形参中。
我们可以在实参列表中以 * 或者 ** 标识符来限制传入的实参必须为 Tuple/List 或 Dict 的类型对象。
向函数传递Tuple
其实不定长参数本质是将冗余的实参转换为Tuple数据类型后再传递给函数。下面的例子传递了一个Tuple类型实参给函数,和使用不定长参数效果是一样的。需要注意的是,不定长参数需要放到函数形参列表的后端,而Tuple类型形参可以随意放置。
In [33]: %pycat func1Test.py
#!/usr/bin/env python
#Filename:func1Test.py
import sys
def printYourEnter(input1,input2):print input1print input2for var in input2:print varif __name__ == '__main__':enter1 = raw_input("Ple enter your living cities:")enter2 = raw_input("ple enter your name:")enter3 = raw_input("Ple enter your age:")tuple1 = (enter2,enter3)printYourEnter(enter1,tuple1) # 这里没有限制实参类型,可以传入任意类型对象In [34]: run func1Test.py
Ple enter your living cities:BJ
ple enter your name:Jmilk
Ple enter your age:23
BJ
('Jmilk', '23')
Jmilk
23
注意:向函数传度Tuple还有一种形式:
In [91]: %pycat tupleTest.py
#!/usr/bin/env python
#Filename:tupleTest.py
def test(x,y):print x*y
if __name__ == '__main__':t = (2,3)test(*t) # 限制只能传入 Tuple 类型对象In [92]: run tupleTest.py
6
在调用函数的时候,使用 * 标识符:标识将 t 元组中的元素以迭代的方式传递给形参。但是这种时候要求元组元素的个数与形参的个数要一致。
向函数传递List
向函数传递List类型对象,与传递Tuple类型对象类似。
In [61]: %pycat func1Test.py
#!/usr/bin/env python
#Filename:func1Test.py
def printYourEnter(input1,x,y):print input1print xprint yif __name__ == '__main__':enter1 = raw_input("Ple enter your living cities:")enter2 = raw_input("ple enter your name:")enter3 = int(raw_input("Ple enter your age:"))li1 = [enter2,enter3]printYourEnter(enter1,*li1)In [62]: run func1Test.py
Ple enter your living cities:BJ
ple enter your name:Jmilk
Ple enter your age:23
BJ
Jmilk
23
向函数传递Dictionary
想函数传递Dic数据类型需要注意下面几点:
1.形参名与dic中的key相同,形参会自左往右的匹配第一个与自己同名的key,并将此key映射的value传递到形参。
2.若有形参在dic中并没有找到匹配的key,则会报错。
3.若dic中有多个同名的key,则自右往左的优先级来匹配。
4.形参与dic的key:value顺序无关。
注意:若dic中有key不能与形参匹配时,需要人为的指定dic中key给形参,并传递其value给形参,否则会报错。本质是将dic中的value值先取出来再传递到函数形参。
functionName(dic[x][,...])
Example:
In [45]: %pycat func1Test.py
#!/usr/bin/env python
#Filename:func1Test.py
def printYourEnter(input1,cities,name,age):print input1print citiesprint nameprint ageif __name__ == '__main__':enter1 = raw_input("Ple enter your living cities:")enter2 = raw_input("ple enter your name:")enter3 = int(raw_input("Ple enter your age:"))dic = {'cities':enter1,'name':enter2,'age':enter3}printYourEnter('a',**dic)In [46]: run func1Test.py
Ple enter your living cities:BJ
ple enter your name:Jmilk
Ple enter your age:23
a
BJ
Jmilk
23
当限制向函数传递一个dic数据类型时,在调用函数时要使用 ** 来标识是一个映射,即传递一个字典类型的对象。而且在函数定义时,函数的形参必须与字典的Key一致,才可以实现将字典的value传递给函数中对应的形参。
也可以写成下面这种形式:
In [49]: %pycat func1Test.py
#!/usr/bin/env python
#Filename:func1Test.py
def printYourEnter(input1,dic):print input1print dic['cities']print dic['name']print dic['age']if __name__ == '__main__':enter1 = raw_input("Ple enter your living cities:")enter2 = raw_input("ple enter your name:")enter3 = int(raw_input("Ple enter your age:"))dic = {'cities':enter1,'name':enter2,'age':enter3}printYourEnter('a',dic)In [50]: run func1Test.py
Ple enter your living cities:BJ
ple enter your name:Jmilk
Ple enter your age:23
a
BJ
Jmilk
23
Jmilk
Python基本语法_函数_参数的多类型传值相关推荐
- Python:wordcloud.wordcloud()函数的参数解析及其说明
Python:wordcloud.wordcloud()函数的参数解析及其说明 目录 wordcloud.wordcloud()函数的参数解析及其说明 wordcloud.wordcloud()函数的 ...
- python导入模块的语法结构_python学习第五讲,python基础语法之函数语法,与Import导入模块....
python学习第五讲,python基础语法之函数语法,与Import导入模块. 一丶函数简介 函数,就是一个代码块,这个代码块是别人写好的.我们调用就可以. 函数也可以称为方法. 1.函数语法定义 ...
- Python基本语法_函数属性 参数类型 偏函数的应用
目录 目录 前言 软件环境 Python Module的程序入口 函数的属性 Python函数的创建 函数的参数 必备参数 缺省参数 命名参数 不定长参数 匿名参数 偏函数的应用 前言 Python除 ...
- python魔法方法与函数_在Python中画图(基于Jupyter notebook的魔法函数)
这篇文章主要介绍了在Python中画图(基于Jupyter notebook的魔法函数),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 先展示一段相 ...
- python四大高阶函数_详谈Python高阶函数与函数装饰器(推荐)
一.上节回顾 Python2与Python3字符编码问题,不管你是初学者还是已经对Python的项目了如指掌了,都会犯一些编码上面的错误.我在这里简单归纳Python3和Python2各自的区别. 首 ...
- python中怎么调用函数_浅谈Python中函数的定义及其调用方法
一.函数的定义及其应用 所谓函数,就是把具有独立功能的代码块组织成为一个小模块,在需要的时候调用函数的使用包含两个步骤 1.定义函数–封装独立的功能 2.调用函数–享受封装的成果 函数的作用:在开发时 ...
- python四大高阶函数_四大高阶函数
目录 1. 匿名函数 在我们需要一个函数但又不想费神的去命名一个函数的场合下使用,这就是匿名函数 1 f = lambda x,y,z:x+y+z2 defF(x,y,z):3 return x+y+ ...
- 什么是python的内置函数_什么是python内置函数
python的内置函数截止到python版本3.6.2,现在python一共为我们提供了68个内置函数.它们就是python提供给你直接可以拿来使用的所有函数.那今天我们就一起来认识一下python的 ...
- python调用c语言函数_从Python调用C函数
python调用c语言函数 We can call a C function from Python program using the ctypes module. 我们可以使用ctypes模块从P ...
最新文章
- laravel-admin 使用记录(2) - 快速搭建 CURD
- 信息化及信息化的五个层次
- 搜狗发布全球首个手语AI合成主播,用技术造福听障人群
- 为何要离开?该怎么离开?今天来谈谈辞职
- ue编辑器拖拽上传图片_Typora + PicGo打造超好用的Markdown编辑器
- console修改 ajax,【快速】chrome中console下ajax访问后台
- XLT格式化XML那点事(C#代码中的问题解决)(二)
- Postgres外部表示例
- 【WPF】在MenuItem中下划线“_”显示不正常
- Windows Phone 8初学者开发—第9部分:Windows Phone 8模拟器概述
- Hive窗口函数的使用
- Lecture 2 Asymptotic Notation
- 完整的40页UI/UX作品集展示、简历模板、面试模板
- php手册经常见到,什么是“二进制安全”?
- AG9300|Type-C 转VGA数据转换器解决方案
- 学习记录3——PMSM数学建模——simulink内数学模型搭建以及仿真
- 轻松实现iMessage群发
- (图解)一步一步使用CPP实现深度学习中的卷积
- 阐明量子力学到底为何物?
- 基于FPGA交织的实现
热门文章
- vmboxcentos安装重启又要安装_Windows 10八月更新再遇尴尬:安装失败 或安装后随机重启...
- python中常用的序列化模块_Python常用模块之pickle——对象序列化
- mysql 时差查了13小时_Mysql 时间差了 14 或 13 小时 com.mysql.cj.jdbc.Driver
- 中国队刷新知识图谱“世界杯”,但点开冠军团队一看,我愣住了
- AI用50个三角形画出抽象版蒙娜丽莎,有股后现代的感觉了 | 谷歌大脑出品
- 挖矿让英伟达多赚了近3亿美元,老黄:又创纪录了
- 在Hinton看来是“宇宙答案”GPT-3,到LeCun这里却“对世界一无所知”
- 北大电池新研究登上Nature:3万次循环测试,性能衰减不到30%,大幅提高锂空电池性能...
- 为了故意刁难AI,科学家们制造了这1200个问题,超强AI被“打回原形”
- AngularJS学习日记(四)Service和Provider