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 相关文章推荐
使用pyecharts在jupyter notebook上绘图
Apr 23 Python
详谈套接字中SO_REUSEPORT和SO_REUSEADDR的区别
Apr 28 Python
python判断数字是否是超级素数幂
Sep 27 Python
使用matplotlib中scatter方法画散点图
Mar 19 Python
Python实现序列化及csv文件读取
Jan 19 Python
Python selenium抓取虎牙短视频代码实例
Mar 02 Python
Pycharm配置PyQt5环境的教程
Apr 02 Python
基于python计算并显示日间、星期客流高峰
May 07 Python
Python Web项目Cherrypy使用方法镜像
Nov 05 Python
Python析构函数__del__定义原理解析
Nov 20 Python
matplotlib事件处理基础(事件绑定、事件属性)
Feb 03 Python
Matplotlib绘制混淆矩阵的实现
May 27 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
php将数组转换成csv格式文件输出的方法
2015/03/14 PHP
PHP设计模式之工厂模式实例总结
2017/09/01 PHP
PHP中-&gt;和=&gt;的含义及使用示例解析
2020/08/06 PHP
javascript多种数据类型表格排序代码分析
2010/09/11 Javascript
用js小类库获取浏览器的高度和宽度信息
2012/01/15 Javascript
js文件包含的几种方式介绍
2014/09/28 Javascript
基于MVC4+EasyUI的Web开发框架形成之旅之界面控件的使用
2015/12/16 Javascript
jQuery滚动新闻实现代码
2016/06/26 Javascript
解决Jquery下拉框数据动态获取的问题
2018/01/25 jQuery
详解Vue Elememt-UI构建管理后台
2018/02/27 Javascript
解决vue 中 echart 在子组件中只显示一次的问题
2018/08/07 Javascript
Vue axios设置访问基础路径方法
2018/09/19 Javascript
Vue多组件仓库开发与发布详解
2019/02/28 Javascript
浅谈js闭包理解
2019/04/01 Javascript
用vscode开发vue应用的方法步骤
2019/05/06 Javascript
通过实例解析js简易模块加载器
2019/06/17 Javascript
微信小程序利用Canvas绘制图片和竖排文字详解
2019/06/25 Javascript
微信小程序自定义菜单切换栏tabbar组件代码实例
2019/12/30 Javascript
[01:32]DOTA2 2015国际邀请赛中国区预选赛第四日战报
2015/05/29 DOTA
[01:20]PWL S2开团时刻第三期——团战可以输 蝙蝠必须死
2020/11/26 DOTA
python实现的一个p2p文件传输实例
2014/06/04 Python
对PyTorch torch.stack的实例讲解
2018/07/30 Python
Python中浅拷贝copy与深拷贝deepcopy的简单理解
2018/10/26 Python
Python中那些 Pythonic的写法详解
2019/07/02 Python
Django rest framework jwt的使用方法详解
2019/08/08 Python
python中pow函数用法及功能说明
2020/12/04 Python
python多线程和多进程关系详解
2020/12/14 Python
python基于openpyxl生成excel文件
2020/12/23 Python
c++工程师面试问题
2013/08/04 面试题
运动会入场解说词300字
2014/01/25 职场文书
市场营销管理制度
2014/01/29 职场文书
护士试用期自我鉴定
2014/02/08 职场文书
大学生感恩父母演讲稿
2014/08/28 职场文书
报到证办理个人委托书
2014/10/06 职场文书
初中体育教学随笔
2015/08/15 职场文书
nginx 反向代理之 proxy_pass的实现
2021/03/31 Servers