编程要素:函数和数据
| 教程文档
函数和数据
计算机编程语言的作用,除了让计算机执行一些任务以外。更大的作用是整理计算过程,并且表达出编程者思想以供其他人阅读。
所以,程序主要是写给人看的,恰好还能够让机器执行。
“将简单的想法,通过组合成更复杂的想法,是编程语言的核心” — 抽象
任何一门功能强大的编程语言,都具有以下三种机制:
- “基本表达式”和“语句”: 表示语言提供的最简单的语法
- “组合”手段: 通过这些手段可以从简单的元素构建复合元素
- “抽象”手段: 通过该手段可以将复合元素命名给变量并进行操作
1.1 什么是”表达式”?
每一门语言都有它最原始的表达式,比如数字。
# 数字
>>> 42
42
>>> 1 + 1
2
# 运算符和标记符号
+ - * / > <
{} [] '' ""
# 保留字
if for while
1.2 什么是”调用表达式”?
复合表达式中,最重要的一种是:调用表达式
它将一个函数对某些参数进行一些特定的处理。
a = max(4,5) # a = 5
b = min(3,9) # b = 3
c = str(3) # c = '3'
1.3 库函数
- 库函数,就是许多函数被组合在各种模块中,然后这些模块共同构成了Python的库
- Python标准库, 就是安装Python时一起被安装的库函数,可以直接import然后使用
- 第三方库, 根据需求不同,自行下载导入的第三方写好的库函数包。
详细的内容可以参考:
Python 官方文档
2.1 变量与环境
编程语言中,如果要对一些值进行计算操作,会使用变量作为值的引用。给定一个值的变量名,就是将这个值绑定给这个变量了。
>>> radius = 10
>>> radius
10
>>> from math import pi
>>> pi * 71 / 223
1.0002380197528042
= ,即赋值号。是最简单的“抽象”方式,可以通过赋值号,将一系列复合运算的结果值与某个变量绑定,完成一次简化的过程。
通过上述的方式: 计算机完成将变量的值绑定在变量上,然后通过访问这些变量来获取其对应的值。
这意味着,解释器/编译器必须维护某些内存,以保证维持“变量”与“值”直接这样的绑定关系,这就是程序的运行“环境”。
2.2 解析表达式与表达树
多个基础的表达式,通过嵌套组合成复杂表达式,再由复杂的表达式,逐层拆解为基础表达式,这个过程类似一颗倒立的树木。
表达树:
max(min(a,b), max(c,d))
↓
max() → min(a,b), max(c,d)
↓
min() → a,b 和 max() → c,d
↓
a,b,c,d
直到不可拆分,就达到了树的节点,也就是最基础的表达式了。
x = 3
sum(x,1)
每一行代码,只会执行得的两种结局: 1.执行过程 2.解析表达式
x = 3 # 此时单纯的“赋值” , 对“环境” 中的值不做影响, 不产生任何新的结果
y = sum(x,1) # 表达式解析后,对“环境”中的“值”: x 对应的值3 进行 加法运算,加1后,新的结果值从函数中返回并绑定给变量名y
2.3 纯功能函数
纯函数就是有一些输入值,经过函数处理后,返回一些输出值。而且使用同样的值调用同一个函数两次,返回的值都是相同的。
纯函数更加容易测试,而且可以更加稳定的构建复合表达式。
2.4 非纯功能函数
非纯函数就是除了会返回值以外,还会有其他的行为,比如“打印”或者“文件生成”,总之可能会造成计算机状态发生变化的行为。