6

编程要素:函数和数据

 3 years ago
source link: https://lianqiujun.co/post/bian-cheng-yao-su-han-shu-he-shu-ju/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

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

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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK