python3中函数参数的四种简单用法


Posted in Python onJuly 09, 2018

下面给大家介绍python3中函数参数的四种简单用法,具体内容如下所示:

def print_two(*args):
  arg1, arg2 = args
  print "arg1: %r, arg2: %r" % (arg1,arg2)
def print_two_again(arg1, arg2):
  print "arg1: %r, arg2: %r" % (arg1, arg2)
def print_one(arg1):
  print "arg1: %r" % arg1
def print_none():
  print "I got nothin"
print_two("Zed","Shaw")
print_two_again("Zed","Shaw")
print_one("First!")
print_none()

默认参数

看下面代码

def stu_register(name,age,country,course):
  print("----注册学生信息------")
  print("姓名:",name)
  print("age:",age)
  print("国籍:",country)
  print("课程:",course)
stu_register("王山炮",22,"CN","python_devops")
stu_register("张叫春",21,"CN","linux")
stu_register("刘老根",25,"CN","linux")

发现 country 这个参数 基本都 是"CN", 就像我们在网站上注册用户,像国籍这种信息,你不填写,默认就会是 中国, 这就是通过默认参数实现的,把country变成默认参数非常简单

def stu_register(name,age,course,country="CN"):

这样,这个参数在调用时不指定,那默认就是CN,指定了的话,就用你指定的值。

另外,你可能注意到了,在把country变成默认参数后,我同时把它的位置移到了最后面,为什么呢?

关键参数

正常情况下,给函数传参数要按顺序,不想按顺序就可以用关键参数,只需指定参数名即可,但记住一个要求就是,关键参数必须放在位置参数之后。

stu_register(age=22,name='alex',course="python",)

非固定参数

若你的函数在定义时不确定用户想传入多少个参数,就可以使用非固定参数

def stu_register(name,age,*args): # *args 会把多传入的参数变成一个元组形式
  print(name,age,args)
stu_register("Alex",22)
#输出
#Alex 22 () #后面这个()就是args,只是因为没传值,所以为空
stu_register("Jack",32,"CN","Python")
#输出
# Jack 32 ('CN', 'Python')

还可以有一个**kwargs

def stu_register(name,age,*args,**kwargs): # *kwargs 会把多传入的参数变成一个dict形式
  print(name,age,args,kwargs)
stu_register("Alex",22)
#输出
#Alex 22 () {}#后面这个{}就是kwargs,只是因为没传值,所以为空
stu_register("Jack",32,"CN","Python",sex="Male",province="ShanDong")
#输出
# Jack 32 ('CN', 'Python') {'province': 'ShanDong', 'sex': 'Male'}

局部变量  

name = "Alex Li"
def change_name(name):
  print("before change:",name)
  name = "金角大王,一个有Tesla的男人"
  print("after change", name)
change_name(name)
print("在外面看看name改了么?",name)

输出

before change: Alex Li
after change 金角大王,一个有Tesla的男人

在外面看看name改了么? Alex Li

全局与局部变量

在子程序中定义的变量称为局部变量,在程序的一开始定义的变量称为全局变量。
全局变量作用域是整个程序,局部变量作用域是定义该变量的子程序。
当全局变量与局部变量同名时:
在定义局部变量的子程序内,局部变量起作用;在其它地方全局变量起作用。

总结

以上所述是小编给大家介绍的python3中函数参数的四种简单用法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
Python socket编程实例详解
May 27 Python
Python功能键的读取方法
May 28 Python
python简单判断序列是否为空的方法
Jun 30 Python
Python六大开源框架对比
Oct 19 Python
Python如何爬取微信公众号文章和评论(基于 Fiddler 抓包分析)
Jun 28 Python
python爬虫 execjs安装配置及使用
Jul 30 Python
Python创建数字列表的示例
Nov 28 Python
pytorch制作自己的LMDB数据操作示例
Dec 18 Python
python已协程方式处理任务实现过程
Dec 27 Python
浅析Python requests 模块
Oct 09 Python
python入门之算法学习
Apr 22 Python
pytorch 权重weight 与 梯度grad 可视化操作
Jun 05 Python
python3学习之Splash的安装与实例教程
Jul 09 #Python
Python基于sklearn库的分类算法简单应用示例
Jul 09 #Python
Python不使用int()函数把字符串转换为数字的方法
Jul 09 #Python
python中ASCII码和字符的转换方法
Jul 09 #Python
python中ASCII码字符与int之间的转换方法
Jul 09 #Python
Python 十六进制整数与ASCii编码字符串相互转换方法
Jul 09 #Python
python 以16进制打印输出的方法
Jul 09 #Python
You might like
PHP网站基础优化方法小结
2008/09/29 PHP
解析PHP中ob_start()函数的用法
2013/06/24 PHP
JavaScript创建命名空间的5种写法
2014/06/24 PHP
Yii使用DeleteAll连表删除出现报错问题的解决方法
2016/07/14 PHP
PHP实现的下载远程文件类定义与用法示例
2017/07/05 PHP
JS自动适应的图片弹窗实例
2013/06/29 Javascript
javascript跟随滚动效果插件代码(javascript Follow Plugin)
2013/08/03 Javascript
jquery mobile页面跳转后样式丢失js失效的解决方法
2014/09/06 Javascript
Bootstrap前端开发案例二
2016/06/17 Javascript
jQuery通用的全局遍历方法$.each()用法实例
2016/07/04 Javascript
jQuery实现的图片轮播效果完整示例
2016/09/12 Javascript
angularJS Provider、factory、service详解及实例代码
2016/09/21 Javascript
JSON对象转化为字符串详解
2017/08/11 Javascript
JS判断数组那点事
2017/10/10 Javascript
微信小程序实现笑脸评分功能
2018/11/03 Javascript
BootStrap modal实现拖拽功能
2018/12/01 Javascript
Python os模块中的isfile()和isdir()函数均返回false问题解决方法
2015/02/04 Python
Python os模块学习笔记
2015/06/21 Python
Python中安装easy_install的方法
2018/11/18 Python
django的ORM操作 增加和查询
2019/07/26 Python
Python 3.8正式发布,来尝鲜这些新特性吧
2019/10/15 Python
完美解决keras 读取多个hdf5文件进行训练的问题
2020/07/01 Python
Python基于正则表达式实现计算器功能
2020/07/13 Python
css3+jq创作含苞待放的荷花
2014/02/20 HTML / CSS
香蕉共和国Banana Republic官网:美国GAP旗下偏贵族风格服饰品牌
2016/11/21 全球购物
阿联酋电子产品购物网站:Menakart
2017/09/15 全球购物
美国和加拿大房车出售在线分类广告:RVT.com
2018/04/23 全球购物
explicit和implicit的含义
2012/11/15 面试题
AJAX的全称是什么
2012/11/06 面试题
中式面点餐厅创业计划书
2014/01/29 职场文书
讲文明树新风公益广告宣传方案
2014/02/25 职场文书
人事专员岗位职责说明书
2014/07/30 职场文书
班子查摆四风个人对照检查材料思想汇报
2014/10/04 职场文书
消防验收申请报告
2015/05/15 职场文书
2015年安全生产月工作总结
2015/07/27 职场文书
Java比较两个对象中全部属性值是否相等的方法
2021/08/07 Java/Android