IT干货网

Python介绍

kenshinobiy 2022年09月17日 编程设计 89 0

编程语言也有很多种, 目前使用比较广泛的有: C 语言, Java语言, Python语言, Javascript语言 等。为什么我们学 Python编程语言? 因为Python 易学而且好用 。易学因为Python 更像人类语言(英语),而不是机器语言。而且Python 语法简洁易懂,屏蔽了很多底层的细节,更加容易学习好用首先,开发速度快,别的语言要 3天、5天 才能开发出来的软件,Python 可能只要 1天。 其次,Python编程应用广泛,领域涵盖: Web网站 、自动化、爬虫、图形界面、数据分析、运维、自然语言处理、图像处理、科学计算、游戏、人工智能 等等

Python 的特色和优点

入门简单,对初学者友好
在介绍 Python 语言时,通常会提到 Python 是一门易学的编程语言,易学是 Python 最鲜明的特色。相对于 C、C++、Java 等编程语言,Python 的易学体现在它的学习曲线非常的平缓,如果学习曲线如果太陡峭,显然不适合一般人去学习掌握,大部分人没入门就放弃了。

高级语言,不用考虑底层硬件细节
程序设计语言被分类为高级语言和低级语言:使用低级语言编写程序时,程序员需要考虑底层硬件细节,例如:手工的分配和释放内存,程序编写时繁琐易错;而使用高级语言编写程序时,高级语言会自动的处理底层硬件细节,例如:自动的释放不再使用的内存,程序员不用考虑底层硬件细节,专注于解决问题本身。

Python 是一种典型的高级语言,向程序员屏蔽了底层硬件细节。例如,Python 程序既可以在 x86 处理器上运行,也可以在 arm 处理器上运行,程序员不需要了解 x86 处理器和 arm 处理器的指令,就可以完成计算"1 加 2"这样的任务。

语法简洁直观
Python 语法接近自然语言,提供了很多简洁、直观和易于理解的表达方式,非常适用来描述求解问题的逻辑。实现相同程序功能时,Python 语言的代码行数仅相当于其他语言的 1/5 至 1/10。更少的代码行数、更简洁的表达方式可减少程序错误以及缩短开发周期。

强大的标准库和第三方库
Python 语言可以将复杂的功能封装为模块(又称为库),将功能实现的细节隐藏起来,使用该模块(库)的程序员不需要了解实现的细节。通过调用模块封装好的功能,可以用仅仅几行 Python 代码实现某项复杂的功能,例如可以用一行代码就实现一个 Web 服务器。

在 Python 的应用领域中,如:web 开发、人工智能、网络爬虫、数据分析等领域,已经存在了大量的模块,程序使用这些模块就可以轻松开发出应用程序。

Python 的标准库是随着 Pyhon 安装的时候默认自带的库,提供了有文本处理、系统管理、网络处理等功能。Python 的第三方库,是由各家厂商和 Python 爱好者开发的库,第三方库需要下载后安装到 Python 的安装目录下。强大的标准库和第三方库,让 Python 程序员能够轻松实现各种复杂的功能。

Python 的缺点

和 C、C++ 等编程语言相比,Python 程序的运行性能很差,这是 Python 语言最主要的缺点。例如,编写一个以数学计算为主的程序,完成相同功能的 Python 程序的运行性能只有 C 程序的千分之一左右。

在实际的应用场景中,Python 的缺点并不会成为系统的瓶颈,原因如下:

  • 在应用领域中,程序运行时大部分时间进行的是 IO 处理,少部分时间进行数学计算。

  • 在 Web 后端开发中,Python 程序接受来自网络的请求,处理请求时读写数据库,最后将处理结果通过网络返回,大量的时间花费在网络 IO 和数据库 IO 上,因此 Python 的数学运算性能对程序的整体影响不大。(用Python 开发小型网站还行,大型网站还是Java)

  • 发挥 C 语言和 Python 语言两者各自的优势,使用 C 语言完成对计算性能要求高的功能,使用 Python 语言封装 C 语言实现的功能模块。

在应用领域中,程序运行时大部分时间进行的是 IO 处理,少部分时间进行数学计算。在 Web 后端开发中,Python 程序接受来自网络的请求,处理请求时读写数据库,最后将处理结果通过网络返回,大量的时间花费在网络 IO 和数据库 IO 上,因此 Python 的数学运算性能对程序的整体影响不大。 发挥 C 语言和 Python 语言两者各自的优势,使用 C 语言完成对计算性能要求高的功能,使用 Python 语言封装 C 语言实现的功能模块。

Python 的 NumPy (Numerical Python) 库,是一个针对矩阵运算的数学函数库,该库由 Python 语言和 C 语言混合开发而成:底层的数学运算功能由 C 语言实现,面向用户的接口使用 Python 语言实现。用户使用 Python 语言调用底层的 C 语言模块,从而兼顾了开发效率和运行效率。

Python 2 和 Python 3

Python 有两个主要的版本: Python 2 与 Python 3。Python 3 相对于 Python 2 是一个重大的升级,Python 3 与 Python 2 两者的语法不兼容。最近这几年 Python 3 的使用率急剧上升,Python 2 将逐步退出舞台。因此,学习 Python 应该选择 Python 3。

Python 的现状

Python 自 1989 年诞生以来,经历了 30 年的发展,已经成为流行的编程语言之一。TIOBE 编程语言排行榜根据互联网上程序员、教程和第三方厂商的数量,并使用搜索引擎统计出编程语言的排名数据,反映了某个编程语言的热门程度。2022 年 8 月编程语言榜前 20 名:
在这里插入图片描述

Python 的应用领域

教学

Python 可以作为《程序设计语言》课程的教学语言,在教学领域得到了国际和国内知名高高校认可。以世界著名的麻省理工学院 (MIT)为例,《计算机科学及编程导论》在 MIT 的课程编号是 6.00.1,是 MIT 计算机科学及工程学院的经典课程。之前,课程一直使用 Scheme 作为教学语言,不过由于 Python 简单、易学等原因,近年来已经改用 Python 作为教学语言了。

后端开发

在 Web 应用中,用户通过浏览器向服务器提交请求,服务器接收到请求后,对用户的请求进行处理,再将结果返回给用户。例如,使用 baidu 搜索引擎的过程如下:

用户在 baidu 的搜索框中,输入关键字 “手机”,浏览器将关键字 “手机” 发送到 baidu 的服务器。baidu 服务器收到查询手机的请求,在数据库查找和手机相关的网页,按照与关键词的相关性进行排序,再将排序结果发送给用户。浏览器收到服务器的查询结果后,显示与 “手机” 相关的网页列表。在以上的 3 个步骤中,与用户交互的部分称之为前端,在服务器处理的用户请求的部分称为后端。Python 提供了大量的模块和框架可以用于后端开发。有很多知名的网站后端采用了 Python,例如,国内的豆瓣就是一个应用Python打造的非常成功的 Web 2.0 站点。

网络爬虫

网络爬虫,又被称为网页蜘蛛、网络机器人,是一种按照一定的规则,自动地抓取网页的程序。网络爬虫把网站的网页下载到在本地,然后对下载的网页进行关键字提取和数据分析。例如,baidu 搜索引擎使用到大量的网络爬虫,过程如下:

选择站点作为爬虫的目标。
按照一定的策略,抓取该站点的网页。
对下载的网页进行关键字提取,建立索引。
Python 提供了大量的模块和框架可以用于网络爬虫。例如,Python 提供了 requests 模块根据指定的 url 抓取网页。Python 同时提供了网络爬虫框架,例如 Scrapy,基于 Scapy 框架开发可以快速实现抓取 web 站点并从页面中提取结构化的数据。

自动化运维

一个互联网产品的生成一般经历的过程是:需求分析、研发部门开发、测试部门测试、运维部门部署发布以及长期的运行维护。运行维护的日程主要工作包括服务部署、服务监控等。运维的工作繁琐重复,即使最谨慎的人,也会犯错,尤其是面对着重复性工作。通过运维自动化工具来完成这样的工作,错误率将大大降低。

Python 提供了各种自动化运维工具,能满足绝大部分自动化运维的需求,包括:

服务部署工具,当应用较为简单时,只需要在少量服务器上部署少量的服务,可以采用人工操作;当应用较复杂,需要在大量服务器上部署大量的服务,采用服务部署工具可以一键实现在多台服务器上自动化部署多项服务。
服务监控工具,对服务运行的状态进行实时的监控,随时发现服务的运行异常和资源消耗情况;对服务出现的任何异常进行及时处理,尽可能避免问题的扩大化甚至中止服务。

自动化测试

自动化测试,顾名思义是指自动完成测试工作。通过工具模拟人工的操作过程,并验证其结果,这样的测试过程,就是是自动化测试。自动化测试节约了批人力成本,让机器执行大量的重复繁琐的劳动。

Python 提供了众多的自动化测试框架,可以实现:

单元测试:简化单元测试的编写。对 GUI 程序的自动化测试:Python 提供了模拟鼠标的单击和移动、键盘输入等功能,模拟用户操作 GUI 程序。Web 自动化测试:Python 提供了模拟鼠标的单击和移动、键盘输入等功能,模拟用户操作浏览器。性能测试:使用代码模拟大批量用户,让用户并发请求,统计系统负载能力并生成报告。

数据分析

数据分析是指对数据搜集、整理、分析,并依据数据做出评估和预测。现在是一个依靠数据竞争的时代,世界 500 强企业中,有 90% 以上都建立了数据分析部门。IBM、微软、Google 等知名公司都积极投资数据业务,建立数据部门,培养数据分析团队。

Python 提供了和数据分析相关的模块,典型的包括:numpy,用于数学计算,如矩阵计算。pandas,基于 numpy 数据分析工具,提供了大量能使我们快速便捷地处理数据的函数和方法。matplotlib:用于数据结果的可视化,将数据展现为散点图、折线图、直方图、柱状图、饼图等直观的形式。

人工智能

人工智能(Artificial Intelligence),英文缩写为 AI,它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。人工智能的研究目标是使计算机能够胜任一些通常需要人类智能才能完成的复杂工作,例如:

无人驾驶,通过车载传感系统感知道路环境、自动规划行车路线并控制车辆到达预定目标。
机器翻译,将一种自然语言(例如英文)转换为另一种自然语言(例如中文)。
语音合成,将文字信息转变为可以听得懂的、流利的人造语音。
Python 提供了相关的库用于快速开发人工智能的应用,用户使用 Python 的 AI 库时,不需要深入了人工智能算法的细节,极大的降低了人工智能开发的门槛。

TensorFlow 是一个机器学习框架,其前身是谷歌的神经网络算法库,在计算机视觉、语音处理、推荐系统和自然语言处理等场景下有着丰富的应用,是目前最热门的机器学习框架。TensorFlow 提供了 Python、C/C++、Java 等多种编程语言的接口,但是基于 Python 编程接口的 TensorFlow 框架进行开发是最常见的选择。

Python 语言的语法简洁、表达能力强,能简单快速聚焦问题本身而不是繁琐底层细节,成为了人工智能编程首选的编程语言。

用 Python 开发的著名项目

阿里云 AI 开放平台

阿里云 AI (https://ai.aliyun.com) 致力于构建最全面、最开放、最前沿的AI开放平台,从 2015 年开始,阿里云推出 AI 产品,包括语音识别,还有图像识别、视觉识别等 130 多款细分产品,适用于 300 多个场景。
在这里插入图片描述

豆瓣网

豆瓣网 (douban) 是一个社区网站,提供关于书籍、电影、音乐等作品的信息,还提供书影音推荐、线下同城活动、小组话题交流等多种服务功能。豆瓣网已经达拥有 300 万注册用户,访问量每天则超过两千万,是一个应用 Python 开发的非常成功的 Web 2.0 站点。

豆瓣网的后端采用了 Quixote 框架,Quixote 框架是一个使用 Python 开发的轻量级 Web 框架。

小提示

在上面我们介绍了Python有多么多么好多么多么厉害, 但是不要盲目觉得学了Python就能找到工作的,都是吹牛逼, 实话告诉你吧Python火的最大原因还是在AI领域和自动化相关, 而自动化其他语言基本都能代替, 所以你们懂得,AI这行业没有研究生学历起步并且算法非常厉害的,那么一般来说只会Python是找不到工作了,不信你就试试

有人会说Python爬虫也可以啊, 那么你是没看看是Python效率有多慢对比其他语言完全没有任何优势可言,而且现在反爬虫机制做的这么厉害,一般来说还需要配合自动化进行,就算你一一都攻克了那么爬取别人没有授权的数据是要坐牢的

还有人说Python可以做Web网页相关的, 这是你没和Java比, 现在市场可以说90%以上都是Java霸占呢

所以在做的各位小伙伴们把学Python当做一种情怀就行了没事的时候可以玩玩,比如抢火车票,秒杀抢购,或者减轻平常工作重复的内容等

在这里插入图片描述

在本博客学习的技术不得以任何方式直接或者间接的从事违反中华人民共和国法律,内容仅供学习、交流与参考
免责声明:本文部分素材来源于网络,版权归原创者所有,如存在文章/图片/音视频等使用不当的情况,请随时私信联系我、以迅速采取适当措施,避免给双方造成不必要的经济损失。

本文参考链接:https://huanmin.blog.csdn.net/article/details/126560528
评论关闭
IT干货网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

Python爬虫遇到的问题