一、python 背景知识
一、摩尔定律
计算机的发展参照摩尔定律,表现为指数方式:
1)计算机硬件所依赖的集成电路规模参照摩尔定律发展
2)计算机运行速度因此也接近几何级数快速增长
3)计算机所能高效支撑的各类运算功能不断丰富发展
摩尔定律(Moore’s Law):
1)历史:计算机发展历史上最重要的预测法则,由 Intel 公司创始人之一的戈登 · 摩尔在 1965 年提出。
2)内容: 单位面积集成电路上可容纳晶体管的数量约每两年翻一倍。
CPU/GPU、内存、硬盘、电子产品价格等都遵循摩尔定律
二、编译和解释
编程语言的执行方式:
1)源代码:某种编程语言,如 c
2)目标代码:机器语言,10101010
编译:将源代码一次性转换成目标代码的过程。
编译器:执行编译过程的程序叫做编译器。
解释:将源代码逐条转换成目标代码同时逐条运行的过程。
解释器:执行解释过程的程序叫做解释器。
静态语言和脚本语言(根据执行方式):
1)静态语言: 使用编译执行的,如 C/C++,Java
运行速度快
2)脚本语言: 使用解释执行的,如 Python,JavaScript,PHP
执行程序需要源代码,维护更灵活
所以python如果某一行出错的话,程序会能运行这行之前的代码。这和c语言很不一样。
三、程序的基本编写方法
IPO(Input Process Output)方法:
1)输入: 输入时程序的开始
2)处理: 处理时程序对输入数据进行计算产生输出结果的过程
处理方法统称为算法,算法时一个程序的灵魂
3)输出: 输出时程序展示运算结果的方式
问题的计算部分:
1)计算机只能解决计算问题,即问题的计算部分
2)一个问题可能有多种角度理解,产生不同的计算部分
3)问题的计算部分一般都有输入、处理和输出过程
编程解决问题的步骤:
1)分析问题:分析问题的计算部分,想清楚
2)划分边界:划分问题的功能边界,规划 IPO
3)设计算法:设计问题的求解算法,关注算法
4)编写程序:编写问题的计算程序,编程序
5)调试测试:调试程序使正确运行,运行调试
6)升级维护:适应问题的升级维护,更新完善
四、Python 语言概述
1.python 语言历史
Python 语言诞生于 1990
Guido van Rossum(吉多 · 范罗苏姆)设计 Python
“超级语言” 的诞生
机器语言:二进制代码,与 CPU 型号有关
汇编语言:将二进制直接对应助记符,汇编器,与 CPU 型号有关
高级语言:接近自然语言,编译器,与 CPU 型号无关
超级语言:粘性整合已有程序,具有庞大计算生态
2.Python 程序编写与运行
两种编程方式:
1)交互式:对每个输入语句即时运行结果,适合语法练习
2)文件式:批量执行一组语句并运行结果,编程的主要方式
3. 计算机技术的演进时代
1946-1981 年,计算机结构时代(35 年),计算能力问题:第一台计算机诞生。第一台 IBM PC 机诞生
1981-2008 年,网络和视窗时代(27 年),交互问题:安卓操作系统诞生,PC 时代向移动时代转换。
2008-2016 年,复杂信息系统时代(8 年),数据问题:计算机打败人类围棋选手
2017-,人工智能时代,人类的问题
4. 程语言的多样初心
C(计算机结构时代):
学习内容:指针,内存,数据类型
语言本质:理解计算机系统结构
解决问题:性能
Java(网络和视窗时代):
学习内容:对象,跨平台,运行时
语言本质:理解主客体关系
解决问题:跨平台
C++:
学习内容:对象,多态,继承
语言本质:理解主客体关系
解决问题:大规模程序
VB(网络和视窗时代):
学习内容:对象,按钮,文本框
语言本质:理解交互逻辑
解决问题:桌面应用
Python(复杂信息系统时代):
学习内容:编程逻辑,第三方库
语言本质:理解问题求解
解决问题:各类问题
五、Python 语言的特点
特点:
(1)通用语言
(2)脚本语言
(3)开源语言
(4)跨平台语言
(5)多模型语言
优势:
(1)强制可读性
(2)较少的底层语法元素
(3)多种编程方式
支持 命令式编程 (How to do) 、 函数式编程 (What to do) ,完全支持 面向对象程序设计
(4)支持中文字符
(5)C 代码量的 10%
(6)13 万第三方库
六、应用
网络爬虫:
自带的 urllib 库,第三方的 requests 库和 Scrappy 框架
数据分析:
Web 开发:
- Python 非常适合开发 Web 应用程序,有能支持多种互联网协议的各种库;
- Python 还有非常强大的框架(如 Django、Pyramid)和微框架(如 Flask 和 Bottle),可以帮助你快速有效地进行 Web 开发。你可以编写 CGI 脚本,还可以使用 Plone 和 Django CMS 等高级内容管理系统
科学和数学应用:
- SciPy:用于数学、科学和工程的软件包集合;
- Pandas:一个数据分析和建模库;
- IPython:一个功能强大的 shell,可以轻松编辑和记录工作会话。它还支持可视化和并行计算。
- NumPy:可帮助我们处理复杂的数值计算。
人工智能:
- Python 在人工智能大范畴领域内的机器学习、神经网络、深度学习等方面也都是主流的编程语言,并且得到广泛的支持和应用。
- 最流行的神经网络框架如 Facebook 的 PyTorch 和 Google 的 TensorFlow 都采用了 Python 语言。
自动化运维:
- Python 是运维工程师首选的编程语言
- Python 标准库包含了多个调用操作系统功能的库。
- 一般说来,Python 编写的系统管理脚本在可读性、性能、代码重用度、扩展性几方面都优于普通的 shell 脚本。
游戏开发:
- Python 也有用于开发游戏的框架 PyGame 和 PyKyra。
- Python 还有各种 3D 渲染库,可用来开发 3D 游戏