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笔记(叁)继续学习
Oct 24 Python
Python中分数的相关使用教程
Mar 30 Python
python中print的不换行即时输出的快速解决方法
Jul 20 Python
利用Python画ROC曲线和AUC值计算
Sep 19 Python
python Pygame的具体使用讲解
Nov 03 Python
Python实现图片拼接的代码
Jul 02 Python
对python while循环和双重循环的实例详解
Aug 23 Python
python实现文件批量编码转换及注意事项
Oct 14 Python
基于python-pptx库中文文档及使用详解
Feb 14 Python
django rest framework 自定义返回方式
Jul 12 Python
使用numpy nonzero 找出非0元素
May 14 Python
python使用pycharm安装pyqt5以及相关配置
Apr 22 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两种去掉数组重复值的方法比较
2014/06/19 PHP
Laravel接收前端ajax传来的数据的实例代码
2017/07/20 PHP
URL编码转换,escape() encodeURI() encodeURIComponent()
2006/12/27 Javascript
javascript实现轮显新闻标题链接
2007/08/13 Javascript
起点页面传值js,有空研究学习下
2010/01/25 Javascript
jquery 打开窗口返回值实现代码
2010/03/04 Javascript
jquery 文本上下无缝滚动,鼠标放上去就停止 小例子
2013/06/05 Javascript
js拖拽一些常见的思路方法整理
2014/03/19 Javascript
javascript中bind函数的作用实例介绍
2014/09/28 Javascript
JavaScript使用yield模拟多线程的方法
2015/03/19 Javascript
jQuery在线选座位插件seat-charts特效代码分享
2015/08/27 Javascript
Web前端新人笔记之jquery入门心得(新手必看)
2016/05/17 Javascript
Angularjs 实现一个幻灯片示例代码
2016/09/08 Javascript
js本地图片预览实现代码
2016/10/09 Javascript
ES6学习教程之对象字面量详解
2017/10/09 Javascript
javaScript 连接打印机,打印小票的实例
2017/12/29 Javascript
详解Immutable及 React 中实践
2018/03/01 Javascript
Javascript实现异步编程的过程
2018/06/18 Javascript
vue实现简单计算商品价格
2020/09/14 Javascript
[52:07]完美世界DOTA2联赛PWL S3 LBZS vs access 第二场 12.10
2020/12/13 DOTA
Python常用内置函数总结
2015/02/08 Python
Python简单连接MongoDB数据库的方法
2016/03/15 Python
python中关于for循环的碎碎念
2017/06/30 Python
Python中进程和线程的区别详解
2017/10/29 Python
python中设置超时跳过,超时退出的方式
2019/12/13 Python
兰蔻美国官网:Lancome美国
2017/04/25 全球购物
Calzedonia美国官网:意大利风格袜子、打底裤和沙滩装
2018/07/19 全球购物
关于Java String的一道面试题
2013/09/29 面试题
DBA数据库管理员JAVA程序员架构师必看
2016/02/07 面试题
short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
2014/09/26 面试题
入党积极分子介绍信
2014/01/17 职场文书
运输服务质量承诺书
2014/03/27 职场文书
七夕相亲活动策划方案
2014/08/31 职场文书
临床医学生职业规划书范文
2014/10/25 职场文书
岁月神偷观后感
2015/06/11 职场文书
Win11绿屏怎么办?Win11绿屏死机的解决方法
2021/11/21 数码科技