版权声明:@Abby-YTJ https://blog.csdn.net/weixin_43564773/article/details/85464470
1. 演进中的编程语言
1.1 计算机技术演进过程
- 计算机系统结构时代(1946-1981)-> 解决计算性能问题 -> C语言
- 网络和视窗时代(1981-2008)-> 解决计算交互问题 -> Java HTML等
- 复杂信息系统时代(2008-2016)-> 解决数据周期问题 -> JS/Java/C++/Python…
- 人工智能时代(2016至今)-> 解决人类需求问题 -> Python
1.2 各编程语言的历史使命
编程语言 | 学习内容 | 语言本质 | 解决问题 | 使用岗位 |
---|---|---|---|---|
C | 指针、内存、数据类型 | 理解计算机系统结构 | 性能 | 系统底层开发 |
Java | 对象、跨平台、运行时 | 理解主客体关系 | 跨平台 | 网络后台及APP开发 |
C++ | 对象、多态、继承 | 理解主客体关系 | 大规模程序 | 应用类特定方向 |
VB/VC | 对象、按钮、文本框 | 理解交互逻辑 | 桌面交互 | 不确定 |
Python | 编程逻辑、第三方库 | 理解问题求解 | 各类问题 | 大数据/人工智能等 |
1.3 计算条件
- 计算机性能已经不是解决一般问题的瓶颈
- 大数据、云计算、物联网、信息安全、人工智能等需求爆发
- 计算领域核心矛盾不再是性能而转化为产量、效率和方法的不足
1.4 Python语言
- 通用语言
- 脚本语言
- 胶水语言
- 跨平台语言
- 多模型语言
2. 编译和解释
编程语言的执行方式
(1)编译执行: 将源代码一次性转换成目标代码的过程
- 类似英语翻译
- 静态语言:C、C++、Java(不好说算是编译还是解释)…
- 编译过程没有时间限制,优化更充分,执行速度更快
- 编译后程序可以在同系列系统中直接执行,不需要执行环境
(2)解释执行:将源代码逐条转换成目标代码同时逐条运行的过程
- 类似同声传译
- 脚本语言:PHP、JavaScript、HTML、Python…
- 执行过程需要源代码,程序维护更灵活
- 通过在不同系统中配置执行环境,可以实现源代码的跨平台执行
3. Python语言特点
Python语言特点:语法简洁
- 1.没有分号、没有函数约束、没有大括号、没有begin/end
- 2.没有类型声明、没有变量定义、没有指针
# 计算并输出1到100整数的和
s = 0
for i in range(1,101):
s += i
print(s)
# 计算并输出n的阶乘
def fact(n):
if n== 1:
return 1
return n*fact(n-1)
print(fact(10))
Python语言特点:开源生态
- 1.超过14万个第三方库免费使用
- 2.避免重复造轮子的先进理念。
- 3.底层可封装C/C++等语言的代码,站在巨人肩膀上编程
# 图像的轮廓获取
from PIL import Image
from PIL import ImageFilter
im = Image.open('Big6.jpg')
om = im.filter(ImageFilter.CONTOUR)
om.save('Big6Contour.jpg')
工具决定思维:关注工具变革的力量
4. 计算生态与超级语言
4.1 计算生态的历史
计算生态:自由软件时代
- 从开源运动说起
- Richard Stallman启动GNU项目(1983)
- GNU通用许可协议诞生(1989)
- Linus Torvalds发布了Linux内核(1991)
- 网景浏览器开源,产生了Mozilla(1998)
计算生态:计算生态深入演化
- 1983,Richard Stallman大教堂模式 vs. 1991,Linus Torvalds集市模式
4.2 计算生态的定义
- 开源思想深入演化和发展,形成了计算生态
- 计算生态以开源项目为组织形式,充分利用“共识原则”和“社会利他”组织人员,在竞争发展、相互依存和迅速更迭中完成信息技术的更新换代,形成了技术的自我演化路径。
4.3 计算生态的特点
- 没有顶层设计、以功能为单位、具备三个特点
- 1.竞争发展
- 2.相互依存
- 3.迅速更迭
4.4 Python计算生态
- 1.以开源项目为形式,提供了超过14万个第三方库
- 2.开源项目的建设经过野蛮生长和自然选择,高质量库众多
- 3.第三方库之间相互关联使用,依存发展或逐级封装
- 4.Python社区庞大,新技术更迭迅速,已经成为计算生态主流
4.5 编程语言的演进
- 汇编语言(CPU相关)
- 高级语言(CPU无关)
- 超级语言(计算生态)
5. 实例1:温度转换
程序需求
- 两种温度体系的转换:摄氏度&华氏度
- 摄氏度:以1标准大气压下水的结冰点为0度,沸点为100度,将温度进行等分刻画
- 华氏度:以1标准大气压下水的结冰点为32度,沸点为212度,将温度进行等分刻画
- 输入:带有摄氏或华氏温度标志的温度值:如82F或82f表示华氏82度
- 输出:带有华氏或摄氏温度标志的温度值:如28C或28c表示摄氏28度
- 输入输出要求:保留小数点后两位
# TempConvert.py
TempStr = input("请输入带有符号的温度值:")
if TempStr[-1] in ['F','f']:
C = (eval(TempStr[0:-1]) -32)/1.8
print("转换后的温度是{:.2f}C".format(C))
elif TempStr[-1] in ['C','c']:
F = 1.8 * eval(TempStr[0:-1]) + 32
print("转换后的温度是{:.2f}F".format(F))
else:
print("输入格式错误")