2.2程序设计基本方法
计算机的发展
- 摩尔定律,指数方式
- 硬件所依赖的集成电路
- 运行速度呈几何级数
编译与解释
- 源代码与目标代码(介于二者伪代码?)
- 编译:将源代码一次性转化为目标代码
- 执行编译过程的程序为编译器compiler
- 一次性翻译,之后不再需要源代码(类似英文翻译)
- 解释:将源代码逐条转换成目标代码同时逐条运行
- 执行解释过程的程序为解释器(interpreter)
- 每次程序运行随翻译执行(类似实时同声传译)
- 静态语言
- 编译执行,如C/C++、Java
- 运行速度快
5.脚本语言
- 解释执行,如python、Javascript
- 维护方便,跨操作平台
程序基本编写方法
- IPO
- Input:
- Processing:处理方法称为算法,是程序的灵魂
- Output:程序展示运算结果的方式
2.3python开发环境配置
编写与运行
- 两种编程方式
- 交互式:对每个输入语句即时运行结果,适合语法练习
- 文件式:编写一组语句,保存为.py文件后,批量执行
2.5python程序语法元素
程序的格式框架
- 代码高亮
- 缩进:表达层次框架,单层、多层
- 缩进是语法的一部分
- 表达代码间包含、层次关系的唯一手段
- 长度程序内一致即可,一般4个blankspace或一个tab
- 注释:提高可读性,单行、多行
命名与保留字
- 变量:保存和表示数据的占位符
- 用标识符(名字)表示
- 赋值符=
- 命名:关联标识符的过程叫命名
- 大小写敏感,首字符不是数字,不和保留字相同
- 保留字(关键字)
- 是编程语言的基本单词,大小写敏感
数据类型
- 供计算机理解的数据形式
- 程序设计语言不允许存在语法歧义,需要定义数据形式
- 字符串
- 是字符的有序序列,可对其中字符进行索引
- 字符串序号:正向递增(从0开始)和反向递减
- 索引:str[M]
- 切片:str[M:N],N取不到
- 数字类型
- 整数
- 浮点数
- 列表类型
- [‘r’,‘e’]
- 使用in判断元素是否在列表中
语句与函数
- 赋值语句
- 赋值符号构成的一行代码
- 分支语句:由判断条件决定程序运行方向
- 函数:输入参数产生不同输出的功能
程序的输入输出
- 输入函数Input
- print()函数:以字符形式向控制台输出结果
- print()函数格式化
print('转换后的温度是{:.2f}C'.format(c)) #.2f表示将C取小数点后两位
- 评估函数eval函数:去掉参数最外层引号并执行余下语句的函数
eval('"1+2"')
eval('print("Hello")') #将会输出Hello
3.2深入理解python语言
不同编程语言初心及适用对象
- C
- 背景:计算机系统结构时代,计算机性能弱,计算资源有限
- 内容:指针、内存、数据类型
- 本质:理解计算机系统结构
- 解决问题:解决性能问题
- 适用对象:计算机专业
- Java
- 背景:网络视窗时代
- 内容:对象、跨平台、运行时
- 本质:理解主客体关系
- 解决问题:跨平台
- 适用对象:软件类专业
- C++:C语言的演进
- 学习内容:对象、多态、继承
- 语言本质:理解主客体关系
- 解决问题:大规模程序
- python
- 背景:复杂信息时代
- 学习内容:编程逻辑、第三方库
- 本质:理解问题求解
python语言的特点
- python语言是通用语言!脚本语言,开源语言,跨平台语言,多模型语言
- 特点、优势
- 语法简介:强制可读性、较少的底层语法元素、多种编程方式、支持中文字符
- 生态高产:第三方库、庞大计算生态、开放共享、跨操作系统平台
- 人生苦短,我学python
- C/C++:python归python,C归C,通过python调用C?
- Java:开发
- HTML/CSS/JS:不可替代的前端技术 全栈能力(兼具前端后端)(python是后端)
- 其他:R/Go/Matlab,针对特定领域
python是以计算生态为标志的超级语言
- 超级语言:粘性整合已有程序,具备庞大计算生态 python是唯一超级语言
- 高级语言:接近自然语言,编译器,与CPU型号无关
- 汇编语言:有助计符,汇编器ÿ