实例讲解Python中函数的调用与定义


Posted in Python onMarch 14, 2016

调用函数:

#!/usr/bin/env python3 
# -*- coding: utf-8 -*- 
 
# 函数调用 
>>> abs(100) 
100 
>>> abs(-110) 
110 
>>> abs(12.34) 
12.34 
>>> abs(1, 2) 
Traceback (most recent call last): 
 File "<stdin>", line 1, in <module> 
TypeError: abs() takes exactly one argument (2 given) 
>>> abs('a') 
Traceback (most recent call last): 
 File "<stdin>", line 1, in <module> 
TypeError: bad operand type for abs(): 'str' 
>>> max(1, 2) 
2 
>>> max(2, 3, 1, -5) 
3 
>>> int('123') 
123 
>>> int(12.34) 
12 
>>> str(1.23) 
'1.23' 
>>> str(100) 
'100' 
>>> bool(1) 
True 
>>> bool('') 
False 
>>> a = abs # 变量a指向abs函数,相当于引用 
>>> a(-1) # 所以也可以通过a调用abs函数 
1 
 
>>> n1 = 255 
>>> n2 = 1000 
>>> print(hex(n1)) 
0xff 
>>> print(hex(n2)) 
0x3e8

定义函数:

#!/usr/bin/env python3 
# -*- coding: utf-8 -*- 
 
#函数定义 
def myAbs(x): 
 if x >= 0: 
  return x 
 else: 
  return -x 
 
a = 10 
myAbs(a) 
 
def nop(): # 空函数 
 pass

pass语句什么都不做 。
实际上pass可以用来作为占位符,比如现在还没想好怎么写函数代码,就可以先写一个pass,让代码运行起来。  
  

if age >= 18: 
 pass 
#缺少了pass,代码就会有语法错误 
>>> if age >= 18: 
... 
 File "<stdin>", line 2 
 
 ^ 
IndentationError: expected an indented block 
 
>>> myAbs(1, 2) 
Traceback (most recent call last): 
 File "<stdin>", line 1, in <module> 
TypeError: myAbs() takes 1 positional argument but 2 were given 
>>> myAbs('A') 
Traceback (most recent call last): 
 File "<stdin>", line 1, in <module> 
 File "<stdin>", line 2, in myAbs 
TypeError: unorderable types: str() >= int() 
>>> abs('A') 
Traceback (most recent call last): 
 File "<stdin>", line 1, in <module> 
TypeError: bad operand type for abs(): 'str' 
 
def myAbs(x): 
 if not isinstance(x, (int, float)): 
  raise TypeError('bad operand type') 
 if x >= 0: 
  return x 
 else: 
  return -x 
 
>>> myAbs('A') 
Traceback (most recent call last): 
 File "<stdin>", line 1, in <module> 
 File "<stdin>", line 3, in myAbs 
TypeError: bad operand type

 
返回两个值?  

import math 
def move(x, y, step, angle = 0): 
 nx = x + step * math.cos(angle) 
 ny = y - step * math.sin(angle) 
 return nx, ny 
 
>>> x, y = move(100, 100, 60, math.pi / 6) 
>>> print(x, y) 
151.96152422706632 70.0

 
其实上面只是一种假象,Python函数返回的仍然是单一值 。

>>> r = move(100, 100, 60, math.pi / 6) 
>>> print(r) 
(151.96152422706632, 70.0)

实际上返回的是一个tuple! 
但是,语法上,返回一个tuple可以省略括号,  而多个变量可以同时接受一个tuple,按位置赋给对应的值。 
所以,Python的函数返回多值实际就是返回一个tuple,但是写起来更方便。  
  函数执行完毕也没有return语句时,自动return None。 
 
练习  :

import math 
def quadratic(a, b, c): 
 x1 = (-b + math.sqrt(b * b - 4 * a * c)) / (2 * a) 
 x2 = (-b - math.sqrt(b * b - 4 * a * c)) / (2 * a) 
 return x1, x2 
 
x1, x2 = quadratic(2, 5, 1) 
print(x1, x2) 
 
>>> import math 
>>> def quadratic(a, b, c): 
...  x1 = (-b + math.sqrt(b * b - 4 * a * c)) / (2 * a) 
...  x2 = (-b - math.sqrt(b * b - 4 * a * c)) / (2 * a) 
...  return x1, x2 
... 
>>> x1, x2 = quadratic(2, 5, 1) 
>>> print(x1, x2) 
-0.21922359359558485 -2.2807764064044154
Python 相关文章推荐
使用Python脚本在Linux下实现部分Bash Shell的教程
Apr 17 Python
windows下安装Python和pip终极图文教程
Mar 05 Python
windows下Python实现将pdf文件转化为png格式图片的方法
Jul 21 Python
python中ASCII码字符与int之间的转换方法
Jul 09 Python
python使用xlrd和xlwt读写Excel文件的实例代码
Sep 05 Python
Python爬虫实现爬取百度百科词条功能实例
Apr 05 Python
python Web flask 视图内容和模板实现代码
Aug 23 Python
常用python爬虫库介绍与简要说明
Jan 25 Python
pyspark 随机森林的实现
Apr 24 Python
解决Python数据可视化中文部分显示方块问题
May 16 Python
Python爬取YY评级分数并保存数据实现过程解析
Jun 01 Python
Django中session进行权限管理的使用
Jul 09 Python
Python使用multiprocessing实现一个最简单的分布式作业调度系统
Mar 14 #Python
简单讲解Python中的字符串与字符串的输入输出
Mar 13 #Python
深入解析Python中的list列表及其切片和迭代操作
Mar 13 #Python
Python中的列表生成式与生成器学习教程
Mar 13 #Python
jupyter安装小结
Mar 13 #Python
Ubuntu下安装PyV8
Mar 13 #Python
Python连接MySQL并使用fetchall()方法过滤特殊字符
Mar 13 #Python
You might like
php fsockopen伪造post与get方法的详解
2013/06/14 PHP
smarty内置函数config_load用法实例
2015/01/22 PHP
利用PHPExcel读取Excel的数据和导出数据到Excel
2017/05/12 PHP
PHP微信企业号开发之回调模式开启与用法示例
2017/11/25 PHP
JS加ASP二级域名转向的代码
2007/05/17 Javascript
jquery+json实现数据列表分页示例代码
2013/11/15 Javascript
一个小例子解释如何来阻止Jquery事件冒泡
2014/07/17 Javascript
javascript使用for循环批量注册的事件不能正确获取索引值的解决方法
2014/12/20 Javascript
js格式化时间的方法
2015/12/18 Javascript
javascript实现禁止复制网页内容汇总
2015/12/30 Javascript
Bootstrap下拉菜单Dropdowns的实现代码
2017/03/17 Javascript
JQ图片文件上传之前预览功能的简单实例(分享)
2017/11/12 Javascript
node app 打包工具pkg的具体使用
2019/01/17 Javascript
jQuery实现的3D版图片轮播示例【滑动轮播】
2019/01/18 jQuery
微信小程序实现一张或多张图片上传(云开发)
2019/09/25 Javascript
keep-Alive搭配vue-router实现缓存页面效果的示例代码
2020/06/24 Javascript
在Python编程过程中用单元测试法调试代码的介绍
2015/04/02 Python
利用python如何处理nc数据详解
2018/05/23 Python
python 2.7.13 安装配置方法图文教程
2018/09/18 Python
python使用epoll实现服务端的方法
2018/10/16 Python
分享8点超级有用的Python编程建议(推荐)
2019/10/13 Python
如何基于python实现脚本加密
2019/12/28 Python
python实现的Iou与Giou代码
2020/01/18 Python
Python @property原理解析和用法实例
2020/02/11 Python
python在协程中增加任务实例操作
2021/02/28 Python
H&M旗下高端女装品牌:& Other Stories
2018/05/07 全球购物
Kangol帽子官网:坎戈尔袋鼠
2018/09/26 全球购物
中国旅游网站:途牛旅游网
2019/09/29 全球购物
上海方立数码笔试题
2013/10/18 面试题
领导干部考察材料
2014/02/08 职场文书
远程研修随笔感言
2014/02/10 职场文书
《唯一的听众》教学反思
2014/02/20 职场文书
客房服务员岗位职责
2015/02/09 职场文书
求职自我评价范文
2015/03/09 职场文书
运动会观后感
2015/06/09 职场文书
Python上下文管理器Content Manager
2021/06/26 Python