Python def函数的定义、使用及参数传递实现代码


Posted in Python onAugust 10, 2014

Python编程中对于某些需要重复调用的程序,可以使用函数进行定义,基本形式为:

def 函数名(参数1, 参数2, ……, 参数N):

执行语句函数名为调用的表示名,参数则是传入的参数,可以更具需要定义,也可以没有。

# 例1:简单的函数使用
# coding=gb2312

# 定义函数
def hello():
  print 'hello python!'
  
# 调用函数    
hello()
  
>>> hello python!

函数可以带参数和返回值,参数将按从左到右的匹配,参数可设置默认值,当使用函数时没给相应的参数时,会按照默认值进行赋值。

# 例2:累加计算值
# coding=gb2312

# 定义函数
def myadd(a=1,b=100):
  result = 0
  i = a
  while i <= b:  # 默认值为1+2+3+……+100
    result += i  
    i += 1
  return result

# 打印1+2+……+10    
print myadd(1,10)
print myadd()    # 使用默认参数1,100
print myadd(50)   # a赋值50,b使用默认值
  
>>> 55
>>> 5050
>>> 3825

Python 函数的参数传递时,值得注意的是参数传入时若为变量会被当作临时赋值给参数变量,如果是对象则会被引用。

# 例3:
# coding=gb2312

def testpara(p1,p2):
  p1 = 10
  p2.append('hello')

l = []   # 定义一数组对像
a = 20   # 给变量a赋值
testpara(a,l) # 变量a与对象数组l作为参数传入
print a   # 打印运行参数后的值
for v in l: # 打印数组对象的成员
  print v
    
>>> 20    # 调用函数后a变量并未被复值
>>> hello  # 而对象l数组则增加成员hello
Python 相关文章推荐
python简单分割文件的方法
Jul 30 Python
Python用Pillow(PIL)进行简单的图像操作方法
Jul 07 Python
Python入门之三角函数tan()函数实例详解
Nov 08 Python
Python利用turtle库绘制彩虹代码示例
Dec 20 Python
python数字图像处理之骨架提取与分水岭算法
Apr 27 Python
python爬虫自动创建文件夹的功能
Aug 01 Python
详解Python 切片语法
Jun 10 Python
Python: 传递列表副本方式
Dec 19 Python
python3光学字符识别模块tesserocr与pytesseract的使用详解
Feb 26 Python
Python基于yaml文件配置logging日志过程解析
Jun 23 Python
如何验证python安装成功
Jul 06 Python
Django如何批量创建Model
Sep 01 Python
Python-基础-入门 简介
Aug 09 #Python
Python入门及进阶笔记 Python 内置函数小结
Aug 09 #Python
Python正则表达式的使用范例详解
Aug 08 #Python
python脚本实现统计日志文件中的ip访问次数代码分享
Aug 06 #Python
Python写的Socks5协议代理服务器
Aug 06 #Python
Python写的PHPMyAdmin暴力破解工具代码
Aug 06 #Python
Python写的Discuz7.2版faq.php注入漏洞工具
Aug 06 #Python
You might like
将OICQ数据转成MYSQL数据
2006/10/09 PHP
php随机显示图片的简单示例
2014/02/15 PHP
对xmlHttp对象的理解
2011/01/17 Javascript
JQuery each()函数如何优化循环DOM结构的性能
2012/12/10 Javascript
没有document.getElementByName方法
2013/08/19 Javascript
jquery实现ajax提交form表单的方法总结
2014/03/03 Javascript
理解javascript中的with关键字
2016/02/15 Javascript
最简单的tab切换实例代码
2016/05/13 Javascript
AngularJS基础 ng-keydown 指令简单示例
2016/08/02 Javascript
移动端点击图片放大特效PhotoSwipe.js插件实现
2016/08/25 Javascript
JavaScript遍历Json串浏览器输出的结果不统一问题
2016/11/03 Javascript
jQuery时间日期三级联动(推荐)
2016/11/27 Javascript
JavaScript制作弹出层效果
2016/12/02 Javascript
基于jquery实现二级联动效果
2017/03/30 jQuery
AngulaJS路由 ui-router 传参实例
2017/04/28 Javascript
jQuery开源组件BootstrapValidator使用详解
2017/06/29 jQuery
JS模拟超市简易收银台小程序代码解析
2017/08/18 Javascript
vue 实现复制内容到粘贴板clipboard的方法
2018/03/17 Javascript
js中switch语句的学习笔记
2020/03/25 Javascript
vue中使用vue-pdf的方法详解
2020/09/05 Javascript
[03:47]2015国际邀请赛第三日现场精彩回顾
2015/08/08 DOTA
django中使用Celery 布式任务队列过程详解
2019/07/29 Python
python opencv将图片转为灰度图的方法示例
2019/07/31 Python
使用Python实现文字转语音并生成wav文件的例子
2019/08/08 Python
Python面向对象原理与基础语法详解
2020/01/02 Python
python实现随机加减法生成器
2020/02/24 Python
boostrap modal 闪现问题的解决方法
2020/09/01 HTML / CSS
实习老师个人总结的自我评价
2013/09/28 职场文书
工业设计专业推荐信
2013/10/29 职场文书
写给爸爸的道歉信
2014/01/15 职场文书
财务出纳岗位职责
2014/02/03 职场文书
实习生岗位职责
2014/04/12 职场文书
重阳节演讲稿:尊敬帮助老人 弘扬传统美德
2014/09/25 职场文书
2015年爱国卫生工作总结
2015/04/22 职场文书
教你利用Nginx 服务搭建子域环境提升二维地图加载性能的步骤
2021/09/25 Servers
Java中生成微信小程序太阳码的实现方案
2022/06/01 Java/Android