一文带你深刻的进入python,并且了解python的优缺点

news2024/11/20 10:27:47

嗯,你好,感谢您能打开我的文章,在这里我有一个好消息来告诉大家呢,那就是:还有350多天就要过年啦,哈哈哈哈,开不开心,兴不兴奋

名字:阿玥的小东东

学习:python、c++

主页:阿玥的小东东

目录

1. 前言

2. Python 的特点

3. Python 的使用领域

3.1 数据爬虫

3.2 Web 开发

3.3 软件测试

3.4 运维

3.5 人工智能

3.6 数据分析数据挖掘

4. 并非只有编程人员使用Python

5. Python 入门很简单

6.python的优点

7.python的缺点

写在最后


1. 前言

最近几年Python被吹的神乎其神,很多同学都不清楚Python到底能干什么?就盲目去学习Python,今天我就Python的应用领域来简单盘点一下,让想学习Python 的同学找对方向不迷茫。

2. Python 的特点

这里就谈谈自己的看法,首先 Python是跨平台语言,语法很简洁,很短的代码干更多的事。另外它是脚本语言,随时随地写一段脚本就可以处理数据,十分方便。同时它也是面向对象语言,对初学者十分友好。Python 在处理各个领域的类库也十分丰富,爬虫、机器学习、数据处理、图像处理等等满足了大部分领域的需要。更重要的是 Python 是一种“胶水语言”,可以轻松调用主流的C、C++、Java 类库。 但是这就是 Python 被 “吹”起来的原因吗?当然不是!如果一门语言没有实际用武之地,即使它再优秀也没有意义,也不可能优秀。

3. Python 的使用领域

接下来我们就来看看 Python 在哪些领域有实际的运用。

3.1 数据爬虫

当今互联网数据成为任何一家公司最核心的资产,但是互联网的信息非常海量,未来快速获取有用的公开信息,爬虫就派上了用场。而Python 语言非常善于编写爬虫,通过requests 库抓取网页数据,使用BeautifulSoup 解析网页并清晰和组织数据就可以快速精准获取数据。 用爬虫爬付费音乐,文章,视频,图片等,疫情期间让我度过了很多无聊的时光。(当然如果你没有搞好,可能有人给你打电话:你好,请问你是···先生/女生嘛,我们这边显示您有犯罪的嫌疑,我们正在你们楼下,麻烦和我们走一趟吧·············后续请脑补

3.2 Web 开发

能开发 Web 的不仅仅有 Java , Python 也可以进行快速的 Web 开发,Django、Flask 等都是知名的 Python Web 框架。能够充分利用 Python 的特性进行高效的 Web 开发。

3.3 软件测试

Python 写测试脚本让测试人员掉更少的头发。目前主流的自动化测试框架都支持 Python 脚本。而且招聘网站上测试人员需要掌握的一门语言都有 Python 。

3.4 运维

对于大型平台的运维管理,甚至是自动化运维。Python 也有相关的强大工具诸如fabric、saltstack、ansible。还有我们都熟悉的云计算网络运维,可以找网络豆进行学习

3.5 人工智能

人工智能的核心是算法和模型。需要快速的聚焦问题的本身,而且需要能够进行交互式的进行模型训练。而能够满足这些需求的只有 Python 了。目前主流的两大深度学习框架 TensorFlow 和 Pytorch 都是 Python 写的,而且小而美的 Darknet 也是 Python 开发的。目前我也在使用 Python 进行深度学习的相关开发,如果用java 进行开发将非常复杂,因为神经网络计算都是大量的高维矩阵进行复杂的乘法运算。

而 Python 的语法特性可以很好的处理这种高维数据的运算。然后我们就可以训练出权重模型来识别图片中的目标的数量、位置等等。

3.6 数据分析数据挖掘

对于海量数据的处理是 Python 的强项。所以数据工程师的必备技能也是 Python。数据清洗非常方便。数据分析库Pandas提供了方便的 Api 让你对数据进行分析,结构化,图形展示。 Python 也提供了快速可视化工具诸如m

对于海量数据的处理是 Python 的强项。所以数据工程师的必备技能也是 Python。数据清洗非常方便。数据分析库Pandas提供了方便的 Api 让你对数据进行分析,结构化,图形展示。 Python 也提供了快速可视化工具诸如matplotlib、holoviews 等,让数据快速可视化。

4. 并非只有编程人员使用Python

Python 并非只适合开发技术人员使用,在金融领域很多从业人员也用 Python 来进行金融量化。办公白领如果会使用 Python 可以很方便来批量操作 Excel 、Word 、PDF,让你成为真正的时间管理大师。遗憾的是,Python 目前还不能用来炒菜做饭。

5. Python 入门很简单

其实有编程基础的人,最快可以半天掌握 Python 的基本语法。我个人也建议 Python 作为开发者的第二语言。但是如果要熟练的使用 Python 还需要系统的学习。Python 的一些常用类库学习起来比 Python 本身难得多,比如常用的Numpy、Pandas ,需要通过系统的学习和练习才行。

Python学习路线汇总

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

6.python的优点

1) 语法简单

和传统的 C/C++,Java等语言相比,Python 对代码格式的要求没有那么严格,这种宽松使得用户在编写代码时比较舒服,不用在细枝末节上花费太多精力。我来举两个典型的例子:

  • Python 不要求在每个语句的最后写上分号,当然写也没错;
  • 定义变量时不需要指明类型,甚至可以给同一个变量赋值不同类型的数据。


上述两点也是等常见脚本语言都具备的特性。

Python 是一种代表极简主义的编程语言,阅读一段排版优美的 Python 代码,就像在阅读一个英文段落,非常贴近人类语言,所以人们常说,Python 是一种具有伪代码特点的编程语言。

伪代码(Pseudo Code)是一种算法描述语言,它介于自然语言和编程语言之间。编写伪代码的目的是为了使被描述的算法可以更容易地以任何一种编程语言实现,比如 C、C++、Java 等。因此,伪代码必须结构清晰、代码简单、可读性好,并且类似于自然语言。如果你学过数据结构,阅读过严蔚敏的书籍,那你一定知道什么是伪代码。

为什么说简单就是杀手锏?一旦简单了,一件事情就会变得很纯粹;我们在开发 Python 程序时,可以专注于解决问题本身,而不用顾虑语法的细枝末节。在简单的环境中做一件纯粹的事情,那简直是一种享受。

2) Python 是开源的

开源,也即开放源代码,意思是所有用户都可以看到源代码。

Python 的开源体现在两方面:

① 程序员使用 Python 编写的代码是开源的。

比如我们开发了一个 BBS 系统(即网络论坛),放在互联网上让用户下载,那么用户下载到的就是该系统的所有源代码,并且可以随意修改。这也是解释型语言本身的特性,想要运行程序就必须有源代码。

② Python 解释器和模块是开源的。

官方将 Python 解释器和模块的代码开源,是希望所有 Python 用户都参与进来,一起改进 Python 的性能,弥补 Python 的漏洞,代码被研究的越多也就越健壮。

这个世界上总有那么一小撮人,他们或者不慕名利,或者为了达到某种目的,会不断地加强和改善 Python。千万不要认为所有人都是只图眼前利益的,总有一些精英会放长线钓大鱼,总有一些极客会做一些炫酷的事情。

3) Python 是免费的

开源并不等于免费,开源软件和免费软件是两个概念,只不过大多数的开源软件也是免费软件;Python 就是这样一种语言,它既开源又免费。

用户使用 Python 进行开发或者发布自己的程序,不需要支付任何费用,也不用担心版权问题,即使作为商业用途,Python 也是免费的。

4) Python 是高级语言

这里所说的高级,是指 Python 封装较深,屏蔽了很多底层细节,比如 Python 会自动管理内存(需要时自动分配,不需要时自动释放)。

高级语言的优点是使用方便,不用顾虑细枝末节;缺点是容易让人浅尝辄止,知其然不知其所以然。

5) Python 是解释型语言,能跨平台

5) Python 是面向对象的编程语言

面向对象(Object Oriented)是大多数“现代”语言(即第三代编程语言)都具备的特性,否则在开发中大型程序时会捉襟见肘。

Python 虽然支持面向对象,但它并不强制你使用这种特性。Java 是典型的面向对象的编程语言,它强制必须以类和对象的形式来组织代码。除 Python 和 Java 外,C++、C#、PHP、RuBy、Perl 等,也都支持面向对象的特性。

除了面向对象的编程语言外,还有一种面向过程的编程语言,其中最典型的代表就是 C 语言。

6) Python 功能强大(模块众多)

Python 的模块众多,基本实现了所有的常见的功能,从简单的字符串处理,到复杂的 3D 图形绘制,借助 Python 模块都可以轻松完成。

Python 社区发展良好,除了 Python 官方提供的核心模块,很多第三方机构也会参与到模块的开发中,这其中就有 Google(谷歌)、Facebook(脸书)、Microsoft(微软) 等软件巨头。

在 Python 中,即使是一些小众的功能,它往往也有对应的开源模块,甚至有可能不止一个。

7) Python 可扩展性强

Python 的可扩展性体现在它的模块,Python 具有脚本语言中最丰富、强大的库或模块,这些库或模块覆盖了文件操作、图形界面编程、网络编程、数据库访问等绝大部分应用场景。

值得注意的是,这些类库的底层代码不一定都是 Python,还有很多 C/C++ 的身影。

比如当需要一段关键代码运行速度更快时,就可以使用 C/C++ 语言实现,然后在 Python 中调用它们。Python 能把其它语言“粘”在一起,所以被称为“胶水语言”。

Python 依靠其良好的扩展性,在一定程度上弥补了运行效率慢的缺点。

7.python的缺点

除了上面提到的各种优点,Python 也是有缺点的。

1) 运行速度慢

运行速度慢是解释型语言的通病,Python 也不例外。

Python 速度慢不仅仅是因为一边运行一边“翻译”源代码,还因为 Python 是高级语言,屏蔽了很多底层细节。这个代价也是很大的,Python 要多做很多工作,有些工作是很消耗资源的,比如管理内存。

Python 的运行速度几乎是最慢的,不但远远慢于 C/C++,还慢于 Java。

但是速度慢的缺点往往也不会带来什么大问题。首先是计算机的硬件速度运来越快,多花钱就可以堆出高性能的硬件,硬件性能的提升可以弥补软件性能的不足。

其次是有些应用场景可以容忍速度慢,比如网站,用户打开一个网页的大部分时间是在等待网络请求,而不是等待服务器执行网页程序。服务器花 1ms 执行程序,和花 20ms 执行程序,对用户来说是毫无感觉的,因为网络连接时间往往需要 500ms 甚至 2000ms。

2) 代码加密困难

不像编译型语言那样,源代码会被编译成可执行程序(这个编译过程就相当于对源码加密),对于 Python 来说是直接运行源代码,因此对源码加密是比较困难的。

写在最后

哈哈哈,还有350多天就过年啦,我好开心呢

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/183269.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

零代码应用搭建规范建议

文/顿唯 况育军 贺书钿 编辑/杜逸敏 在明道云零代码开发平台里,一个完整的业务应用包含了工作表、视图、角色、自定义页面、工作流五大核心模块(统计和外部门户为可选模块功能),基于这些能力模块组件,我们能呈现给用…

飞桨时序建模库PaddleTS及产业应用实践

时间序列: 一种普遍存在的数据形态 众所周知,时间序列是一种普遍存在的数据形态,与我们的日常生活及生产活动密切相关。如:股票指数、原油价格等金融市场数据;温度、湿度等天气数据;振动、转速等工业设备运…

【技术短文】汽车软件质量改善

一、根因分析 根据汽车软件脆弱性主要因素分析,共有10余种因素会导致软件质量问题: 1.项目时间点压力,占比 71%2.缺乏安全编程理解/培训,占比 60%3.偶然编程错误,占比 55%4.缺乏质量…

Tarjan算法的应用---缩点与割点

图论中有时候会涉及到一些连通性问题,主要是针对于点来说,在有向图中有时候需要计算强连通分量,这时候代表分量的的点就非常重要;在无向图中有时候会需要知道割点,用到的算法都是Tarjan,这个算法还是有难理…

了解多线程与并发

文章目录前言继承Thread类实现Runnable接口实现Callable和Future接口线程生命周期线程优先级线程加入操作线程休眠操作中断线程线程安全问题线程同步机制1. 同步代码块2. 同步方法线程暂停与恢复知识拓展死锁前言 📋前言📋 💝博客&#xff1a…

用Devc++与easyx一步一步做游戏[启动界面部分]-之按钮制作

前面我们介绍了如何为dev c配置好easyx,至于用easyx能够做一些什么呢?大用处我不敢说,用来学习了解消息机制还是不错的。这我们来实现一个简单的游戏启动界面的设计,主要是按钮的设计。总体设计好的效果如下: GIF截图…

(免费分享)springboot音乐网站

开发工具:eclipse,数据库mysql5.7 jdk1.8技术:springbootmybatis/** * * * */package com.bjpowernode.music.ss.service.impl;import javax.annotation.Resource;import com.bjpowernode.music.common.AbstractService; import com.bjpowe…

基于 ROS 机器人和 RTAB-MAP 算法实现室内三维重建

本文叙如何利用RTAB-Map算法和Turtlebot3机器人在自己构建的室内场景中建图 文章目录1、安装依赖2、创建工作空间3、安装rtabmap和rtabmap_ros4、建立gazebo场景功能包5、建立机器人功能包6、为机器人添加kinect相机参考7、编译工作空间8、建立环境地图9、建图1、安装依赖 必要…

数据结构第五周 :(进制转换问题 + 迷宫自动行走问题 + 杨辉三角形 + 队列元素逆置 + 银行排队 + 整数划分问题 + 卡特兰数)

目录进制转换问题迷宫自动行走问题杨辉三角形队列元素逆置银行排队——队列整数划分问题买票问题——卡特兰数小兔的棋盘——卡特兰数进制转换问题 【问题描述】根据课堂讲授,请用“顺序栈”解决进制转换问题,不采用顺序栈,不给分。 【输入形…

前端屏幕录制工具 + 录制<video>标签内容

一、录制的实现思路 1.开始录制、停止录制、下载视频 2.Blob介绍 3.概念 var mediaRecord //用于录制视频 var mediaStream //视频流 var videoBuffer [] //保存的视频数据二、屏幕录制工具 下载地址: https://chrome.google.com/webstore/detail/tampermonkey…

Linux- 系统随你玩之--文本处理三剑客--grep继任者awk

文章目录1、sed概述1.1、 与vim等编辑器的区别:1.2、sed工作原理1.3 、sed数据处理原理1.4 、正则表达式概念2、 sed语法和常用选项2.1、语法:2.2、sed常用内部命令2.3、参数:3、 sed 正则表达式(定位)3.1 、数字定址…

管理机密(RH294)

在ansible中有一个命令行工具ansible-vault可用于创建 编辑 加密 解密 查看文件举个栗子ansible-vaultcreate filenameNew Vault password: #输入密码Confirm New Vault password: #确认密码也可以使用别的方法 比如创建一个密码文件ansible-vaultcreate…

互联网开发必读Git工具利器-《30天精通Git版本控管》中文版免费分享

本书介绍在软体开发领域,对原始码进行版本控管是非常重要的一件事,有别于Subversion或TFS这类集中式版本控管系统,Git是一套分散式版本控管系统,并带来许多版本控管上的各种优势与解决传统集中式版本控管的缺失,例如支…

Spring Cloud_Hystrix断路器

目录一、概述1.分布式系统面临的问题2.是什么3.能干嘛4.官网资料5.Hystrix官宣,停更进维二、Hystrix重要概念1.服务降级Fallback2.服务熔断Breaker3.服务限流Flowlimit三、hystrix案例1.构建2.高并发测试3.故障现象和导致原因4.上诉结论5.如何解决?解决的…

面试_Selenium常见问题

1.selenium 工作原理 1.对于每一条Selenium脚本,一个http请求会被创建并且发送给浏览器的驱动 2.浏览器驱动中包含了一个HTTP Server,用来接收这些http请求 3.HTTP Server接收到请求后根据请求来具体操控对应的浏览器 4.浏览器执行具体的测试步骤 5.浏览…

Smali语法小记

Smali语法小记 介绍 在执行 Android Java 层的代码时,其实就是 Dalvik(ART) 虚拟机(使用 C 或 C 代码实现)在解析 Dalvik 字节码,从而模拟程序的执行过程。 自然,Dalvik 字节码晦涩难懂,研究人员们给出了…

通过 eShopOnContainers 项目学习一下微服务

这里是项目地址 https://github.com/dotnet-architecture/eShopOnContainers, 这是微软创建的一个基于 .NET 平台的微服务架构的示例应用程序,里面基本上市面上主流的时髦的技术都用上了。 因为涉及的内容比较多,所以我们只简单查看一下微服务的代码实现…

信息抽取命名实体识别和关系抽取)

信息抽取的定义为:从自然语言文本中抽取指定类型的实体,关系、事件等事实信息。并形成结构化数据输出的文本处理技术。 信息抽取是从文本数据中抽取特定信息的一种技术,文本数据由医学具体的单位构成,例如,句子、段落、…

JavaWeb—Vue的简单介绍

1 Vue介绍 概述 Vue是一套构建用户界面的渐进式前端框架。只关注视图层,并且非常容易学习,还可以很方便的与其它库或已有项目整合。通过尽可能简单的API来实现响应数据的绑定和组合的视图组件。 数据渲染 数据库 --JDBC–> java程序 --http协议–>…

《MySQL实战45讲》——学习笔记23 “binlogredolog 的写入机制/组提交机制“

本篇主要介绍数据的可靠性有关的知识,包括binlog的写入机制和redolog的写入机制,通过了解这些机制从而可以在MySQL的IO性能瓶颈上做些优化;前文介绍了MySQL在可靠性、性能相关的概念,包括WAL技术、redolog与binlog、2阶段提交、ch…