在学生时代我们学习了很多函数公式甚至是简单的四则运算都可以看作是函数
如何理解函数或者运算 它一定包含两个重要的部分
- 操作符 + - * / 加减乘除
- 数据1 数据2
在数学上我们通常是这样写的
加法 a + b
减法 a - b
那么 + - 是操作符号 a b是数据
在程序的世界我们可以这样想
- 操作符 +
- 数据 a ,b
实际上就是 - a b
那么 我们用数学函数的方式去表达这个操作减法
def subtract(a,b):
return a - b
这时我们把减法这个通用的动作变成 了一个函数,
你只需要给两个数据我a,b,函数返回a -b的结果。
a = 1
b =3
result = subtract(a, b)
print(result)
回想我们学习数学函数的时候的公式
y = f (x )
z = f ( x ,y)
这里的函数 f 其实是一个运算逻辑,无论是一次函数,二次函数,还是其他任意函数
- y 其实是函数的运算结果,因为 变量 X 有多个值,因此 结果 y 也会有多个值。
- 因此 x ,y 的值的集合就构成了函数知识的一个重要内容
- 定义域 与 值域
例如 一次函数
y = f (x) = k *x + b
这个函数是如何在编程的世界体现 呢?
- f 是函数名
- x 是变量名
- 运算逻辑是 k * x + b
在程序开发中一个很重要的概念是函数 ,在python中用 def去定义一个函数于是我们用程序去计算一次函数的逻辑如下
''' 一次函数
y = k *x + b
'''
def f(x):
a = 2
b = 3
y = a * x + b
return y
函数调用呢,其实和数学一样
y = f(1)
print(y)
函数的核心要素 运算逻辑,变量
在中学 时代我们学习的所有 的函数都可以用程序中表达,并且所有 的开发语言基本都提供了对数学函数的操作的工具,而不需要你从头编写。但是要理解函数是什么,变量是什么返回值是什么(也可以没有返回值,这点与数学微微有点差异)
numpy的数学函数都是元素级别的,也就是说,只用于位置相同的元素之间,所得到的运算结果组成一个新的数组。
四则运算
- np.add
- np.subtract
- np.multiple
- np.divide
- np.florr_divide
- np.power
- np.sqrt
- np.square
- np.absoulte, np.abs: 取绝对值
指数和对数
- np.exp
- np.log
- np.exp2
- np.log2
- np.log10
四舍五入
- np.around(a, decimals=0, out=None) 四舍五入
- np.ceil(x, *args, **kwargs) 上限
- np.floor(x, *args, **kwargs)下限
三角函数 生成一组弧度胡sin cos
- 弧度:以pi为单元
- 角度是 360度为一个圆的度数
- 180 度 = PI 90 度 = PI /2
import numpy as np
a = np.array([0, np.pi/3, np.pi/4, 2 * np.pi/3])
result = np.sin(a)
print(result)
result = np.cos(a)
print(result)
也就是说数学上的一些重要的公式计算编程言语都提供了
然而很多业务逻辑是需要自己去实现
例如你登陆一个网站时,输入用户名密码,需要校验用户名是否存在 ,用户名与密码是否匹配。然后给用户一个登陆成功的信息。这些是业务逻辑。我们可以把它写成一个
函数login
这时我们要记录用户是几点几分登陆 的登陆方式 是手机还是APP,我们写一个log函数记录这些信息。
最后一个个业务逻辑变成函数就构成了一个业务程序的实现。如果你是写偏向硬件的程序,就涉及到 硬件控制开关读写每个层面的逻辑是不一样的。但是思考的步骤与逻辑是不会有太大的差异。
def login (username,password):
pass
def log (username,password):
pass
最后我们写的这些程序只能算是源代码,人能懂得。但是机器不懂得
因此需要 python.exe这个程序把我们写的这段英文解释成 机器能懂得的0101,这样你的程序就跑起来了