编程要素:函数和数据

Python 官方文档
| 教程文档

函数和数据

计算机编程语言的作用,除了让计算机执行一些任务以外。更大的作用是整理计算过程,并且表达出编程者思想以供其他人阅读。
所以,程序主要是写给人看的,恰好还能够让机器执行。

“将简单的想法,通过组合成更复杂的想法,是编程语言的核心” — 抽象

任何一门功能强大的编程语言,都具有以下三种机制:

  • “基本表达式”和“语句”: 表示语言提供的最简单的语法
  • “组合”手段: 通过这些手段可以从简单的元素构建复合元素
  • “抽象”手段: 通过该手段可以将复合元素命名给变量并进行操作

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 非纯功能函数

非纯函数就是除了会返回值以外,还会有其他的行为,比如“打印”或者“文件生成”,总之可能会造成计算机状态发生变化的行为。