# 这是学习廖雪峰老师python教程的学习笔记
1、定义函数
定义一个函数需要有函数名、参数、函数体。函数体中最好还有 传入的参数判断
1.1、函数创建
定义一个函数用def,数据类型检查用isinstance。例子如下:
def my_abs(x):
if not isinstance(x, (int, float)): # 判断传入的参数,是否是 ××× 或 浮点形
raise TypeError('bad operand type') # 抛出错误
if x >= 0:
return x
else:
return -x
1.2、空函数创建
如果想定义一个什么事也不做的空函数,可以用pass语句
def nop():
pass
pass语句什么都不做。在没想好代码怎么写时,用作占位符
1.3、函数的导入
用 import 可以从写好的.py 脚本中导入函数,也可导入系统的自带模块,以使用该模块里的函数
导入系统模块
import math
导入 math模块后,我们就能用math.sqrt()函数
从.py脚本导入(文件名不写后缀)
form test import quadratic
从test文件中,导入quadratic 函数
1.4、函数返回多个值
定义函数
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
解释
>>>r = move(100, 100, 60, math.pi / 6)
>>>print(r)
(151.96152422706632, 70.0)
返回的多个函数值,其实是一个tuple,在语法上,返回一个tuple可以省略括号
1.5、总结
定义函数时,需要确定函数名和参数个数;
如果有必要,可以先对参数的数据类型做检查;
函数体内部可以用return随时返回函数结果;
函数执行完毕也没有return语句时,自动return None。
函数可以同时返回多个值,但其实就是一个tuple。
2、例子
定义一个函数quadratic(a, b, c),接收3个参数,返回一元二次方程:
ax2 + bx + c = 0 的两个解。
提示:计算平方根可以调用math.sqrt()函数:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import math
def quadratic(a,b,c):
n = b*b - 4*a*c # b*b == b**2。可类推 b**3,b**4 …..
if n<0:
print('无实解')
elif n==0:
x= -b/(2*a)
return x
else:
x1=(-b + math.sqrt(n))/(2*a)
x2=(-b - math.sqrt(n))/(2*a)
return x1,x2
原文地址:http://blog.51cto.com/12758568/2115622