讲师介绍:石璞东,计算机硕士,人民邮电出版社签约作者,《智能前端技术与实践》作者,百度飞桨领航团金牌团长,阿里云乘风者计划专家博主
考试科目:883 《C程序设计》(第五版)谭浩强,清华大学出版社
参考资料:《C程序设计(第五版)》谭浩强
# 前言
你好,我是石璞东。
想必你已经知道了Python
这门编程语言的火爆程度,曾几何时,你可能会见到类似 Python将被纳入高考内容、计算机等级考试新增Python
程序设计、人工智能时代,你还不会Python
嘛? 等的新闻头条,毫无疑问,人工智能时代,Python
将占据不可或缺的地位!
2021年10月TIOBE
公布的编程语言排行榜单中,Python
力压群雄,位居榜首!
# 计算机编程语言的分类
- 机器语言
- 概念:计算机能直接识别和接受的二进制代码成为机器指令,机器指令的集合就是机器语言,如10010011,我们可以将其理解为人类社会发展的原始阶段;
- 操作方法:当编写完成用0和1组成的指令后,需要用纸带穿孔机以人工的方法在特制的黑色纸带上穿孔,在指定的位置上有孔代表1,无孔代表0,一个程序往往需要一卷长长的纸带,在需要运行此程序时,就将此纸带装在光电输入机上,当光电输入机从纸带读入信息时,有孔处产生一个电脉冲,指令变成电信号,让计算机执行各种操作;
- 特点:
- 优点:直接执行,速度快,资源占用少;
- 缺点:可读性、可移植性差,编程复杂;
- 汇编语言
- 概念:又称“符号语言”,即用一些英文字母和数字表示一个指令,如用
ADD
表示加法操作,用SUB
表示减法操作,LD
表示“传送”,显然,计算机并不能直接识别和执行符号语言的指令,需要使用一种称为汇编程序的软件,将符号语言的指令转换为机器指令;
- 概念:又称“符号语言”,即用一些英文字母和数字表示一个指令,如用
- 高级语言
- 按转换方式分类:编译型语言、解释型语言;
- 按客观系统描述分类:面向过程语言、面向对象语言;
- 按编程范型分类:命令式语言、函数式语言、逻辑式语言、面向对象语言;
「注」:参考链接:https://www.liuchuo.net/archives/130
相比于C
、C++
、Java
等,Python
语言更易于学习,其语法简单、代码定义更为清晰,具有丰富的模块,如PyQt
、Diango
、requests
、BeautifulSoup
、selenium
、PyMongo
、Pillow
、jieba
、Numpy
、Pandas
、Matplotlib
、scikit-learn
等,支持互动模式,最重要的是,在某些特定场景中,我们可以通过编写C
或C++
完成对代码运行速度较高的任务,并在Python
程序中完成调用。
本系列教程将包含Web
前端、数据分析及其可视化、网络爬虫、OpenCV
、Deep Learning
等!
「注」:本课程采用Python3
作为开发版本。
# Python
应用领域
- 人工智能
Python
在人工智能大范畴领域内的机器学习、神经网络、深度学习等方面都是主流的编程语言,神经网络框架,如TensorFlow
、PyTorch
、paddlepaddle
等均有Python
版本语言的实现。
- 云计算
云计算服务形式包含IaaS(Infrastructure-as-a-structure,基础设施即服务)
、Paas(Platform-as-a-Service,平台即服务)
、Saas(Software-as-a-Service,软件即服务)
,而这三种服务类型中的Iaas
和Saas
需要用到OpenStack
来搭建,该云计算管理平台正是通过Python
语言编写的。
- 数据分析
随着NumPy
、SciPy
、Matplotlib
等众多程序库的开发和完善,Python
越来越适合于做科学计算和数据分析了。它不仅支持各种数学运算,还可以绘制高质量的2D
和3D
图像。和科学计算领域最流行的商业软件Matlab
相比,Python
比Matlab
所采用的脚本语言的应用范围更广泛,可以处理更多类型的文件和数据。
- 网络爬虫
Python
语言很早就用来编写网络爬虫。Google
等搜索引擎公司大量地使用Python
语言编写网络爬虫。从技术层面上将,Python
提供有很多服务于编写网络爬虫的工具,例如urllib
、Selenium
和BeautifulSoup
等,还提供了一个网络爬虫框架Scrapy
。
Web
开发
Python
经常被用于Web
开发,尤其随着Python
的Web
开发框架逐渐成熟,如Django
、Flask
、TurboGears
、web2py
等,程序员可以更轻松地开发和管理复杂的Web
程序。例如,通过mod_wsgi
模块,Apache
可以运行用Python
编写的Web
程序。Python
定义了 WSGI
标准应用接口来协调HTTP
服务器与基于Python
的Web
程序之间的通信。举个最直观的例子,全球最大的搜索引擎Google
,在其网络搜索系统中就广泛使用Python
语言。另外,我们经常访问的豆瓣网,也是使用Python
实现的。
- 游戏开发
很多游戏使用C++
编写图形显示等高性能模块,而使用Python
或Lua
编写游戏的逻辑。和Python
相比,Lua
的功能更简单,体积更小;而Python
则支持更多的特性和数据类型。除此之外,Python
可以直接调用Open GL
实现3D
绘制,这是高性能游戏引擎的技术基础。事实上,有很多Python
语言实现的游戏引擎,例如Pygame
、Pyglet
以及Cocos 2d
等。
- 网络编程
Python
提供了丰富的模块支持sockets
编程,能方便快速地开发分布式应用程序。很多大规模软件开发计划例如Zope
、Mnet
、BitTorrent
和Google
都在广泛地使用它。
- 自动化运维
这几乎是Python
应用的自留地,作为运维工程师首选的编程语言。在很多操作系统里,Python
是标准的系统组件。大多数Linux
发行版和Mac OS
都集成了Python
,可以在终端下直接运行Python
。Python
标准库包含了多个调用操作系统功能的库。通过pywin32
这个第三方软件包,Python
能够访问Windows
的COM
服务及其它WindowsAPI
。使用IronPython
,Python
程序能够直接调用.NetFramework
。一般说来,Python
编写的系统管理脚本在可读性、性能、代码重用度、扩展性几方面都优于普通的shell
脚本。
# 案例展示
- 豆瓣电影 🎬 Top 250票房信息
- 新冠肺炎疫情数据分析
- 当当书城信息获取(基于
Scrapy
框架) - 今日街拍美图获取
IMDB
信息抓取- 百度小说《霸道总裁爱上我》全文抓取
Bilibili
弹幕抓取及词云图制作- 视频网站抓取
- 滑动验证码破解
JS
逆向:王力宏《大城小爱》热评抓取- ......