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 字符串操作实现代码(截取/替换/查找/分割)
Jun 08 Python
python编程使用selenium模拟登陆淘宝实例代码
Jan 25 Python
TensorFlow实现AutoEncoder自编码器
Mar 09 Python
django用户注册、登录、注销和用户扩展的示例
Mar 19 Python
Python WSGI的深入理解
Aug 01 Python
python分批定量读取文件内容,输出到不同文件中的方法
Dec 08 Python
Python 静态方法和类方法实例分析
Nov 21 Python
使用pygame编写Flappy bird小游戏
Mar 14 Python
零基础学python应该从哪里入手
Aug 11 Python
Python之字符串的遍历的4种方式
Dec 08 Python
python爬虫scrapy框架之增量式爬虫的示例代码
Feb 26 Python
Selenium浏览器自动化如何上传文件
Apr 06 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
多文件上载系统完整版
2006/10/09 PHP
cache_lite试用
2007/02/14 PHP
PHP5中虚函数的实现方法分享
2011/04/20 PHP
浅析Dos下运行php.exe,出现没有找到php_mbstring.dll 错误的解决方法
2013/06/29 PHP
PHP调用MsSQL Server 2012存储过程获取多结果集(包含output参数)的详解
2013/07/03 PHP
CI框架数据库查询之join用法分析
2016/05/18 PHP
PHP基于socket实现的简单客户端和服务端通讯功能示例
2017/07/10 PHP
jQuery仿Excel表格编辑功能的实现代码
2013/05/01 Javascript
JS 添加千分位与去掉千分位的示例
2013/07/11 Javascript
javascript替换已有元素replaceChild()使用介绍
2014/04/03 Javascript
javascript自定义的addClass()方法
2014/05/28 Javascript
JS实现点击按钮自动增加一个单元格的方法
2015/03/09 Javascript
简介JavaScript中setUTCSeconds()方法的使用
2015/06/12 Javascript
实例讲解js验证表单项是否为空的方法
2016/01/09 Javascript
JavaScript中0和""比较引发的问题
2016/05/26 Javascript
XMLHttpRequest Level 2 使用指南
2016/08/26 Javascript
jQuery中的一些小技巧
2017/01/18 Javascript
Bootstrap风格的zTree右键菜单
2017/02/17 Javascript
vue实现一个移动端屏蔽滑动的遮罩层实例
2017/06/08 Javascript
webpack4简单入门实例
2018/09/06 Javascript
Vue Cli3 创建项目的方法步骤
2018/10/15 Javascript
jquery3和layui冲突导致使用layui.layer.full弹出全屏iframe窗口时高度152px问题
2019/05/12 jQuery
vue 自定义组件的写法与用法详解
2020/03/04 Javascript
[02:40]DOTA2超级联赛专访430 从小就爱玩对抗性游戏
2013/06/18 DOTA
[01:29]Ti4循环赛第三日精彩回顾
2014/07/13 DOTA
Python入门篇之条件、循环
2014/10/17 Python
Python Pandas数据结构简单介绍
2019/07/03 Python
pyinstaller打包opencv和numpy程序运行错误解决
2019/08/16 Python
Python获取二维数组的行列数的2种方法
2020/02/11 Python
python 使用递归的方式实现语义图片分割功能
2020/07/16 Python
FC-Moto西班牙:摩托车手最大的购物场所之一
2019/04/11 全球购物
介绍一下SQL Server的全文索引
2013/08/15 面试题
《蒲公英》教学反思
2014/02/28 职场文书
因公司原因离职的辞职信范文
2015/05/12 职场文书
Python利用zhdate模块实现农历日期处理
2022/03/31 Python
OpenCV实现常见的四种图像几何变换
2022/04/01 Python