#1 初识Python
前言
要说现在最时髦的编程语言是什么,那么一定是Python无疑了。让我们来一起来领略其风采吧!
一、Python介绍
Python的创始人为吉多·范罗苏姆(Guido van Rossum),被大家称为“龟叔”,他在1989年圣诞节期间,为了在阿姆斯特丹打发时间,决定编写一门新的编程语言,作为ABC语言的继承。(看看人家,再看看自己,哎,不说了,心痛)
如果你听说过TIOBE排行榜,那么你就能得到编程语言的大致流行程度,根据最新的TIOBE排行榜,Python赶超C++占据第三,仅次于Java和C,可见Python的流行程度。

二、Python擅长领域
Python可应用于众多领域,最为擅长的有Web应用开发,自动化运维,网络爬虫,数据分析,科学计算,人工智能,同时Python是一门胶水语言。
Web应用开发:
在大数据、人工智能为人所熟知之前,Python就已经在Web开发领域被广泛应用,产生了Flask、Django、Tornado等Web开发框架,众多大型网站均为Python开发:
YouTube
Quora
Reddit
Instagram
Facebook
Dropbox
Google
NASA
BT
豆瓣
知乎
当然Python不仅应用于网站,很多APP和游戏的服务器也同样使用Python实现
自动化运维:
在自动化运维领域,Python是必须要掌握的技能,因其灵活的功能和丰富的类库使其成为运维工程师的首选语言。Linux系统内置Python,就足以见其在运维领域的地位。
网络爬虫:
网络爬虫可能是萌新学习Python时最感兴趣的,爬虫可以将网站上的任何内容爬取下来,供自己分析使用。对于数据公司来说,爬虫和反爬虫技术都是其赖以生存的重要保障,尽管很多语言都可以写爬虫,但Python绝对是首选,其灵活的爬取能力和丰富的类库,使得爬虫工程师工作起来的心应手。世界上最大的爬虫公司莫属Google了,Google一直在力推Python,就连Python创始人“龟叔”也在Google工作七年,可见Python的爬虫能力有多强。
数据分析:
使用爬虫爬取海量数据之后,就要对数据进行清洗、展示、分析、存储,这方面Python做的也是很棒的,拥有极其丰富的类库可供使用,让数据分析事半功倍。
科学计算:
要说科学计算,大家第一想到的恐怕就是Matlab了,的确,Matlab在科学计算领域有着不可取代的地位,但是Python的出现,可能要取代Matlab成为科学计算的领头羊。Python在科学计算方面拥有极为丰富的类库,这些类库在数学、物理、生物、地理、化学、建筑、武器等领域发挥着重要作用。NASA也早已把Python作为主要的开发语言,可见Python在科学计算领域的优势与i前途。
人工智能:
要说现在最火的方向是什么,绝对是AI没错了,AI最重要的无非不过机器学习、神经网络、深度学习等方面,而Python在数据挖掘、机器学习、神经网络、深度学习等方面都是主流的编程语言,现在Python无疑已成为AI领域的必修语言。
胶水语言:
对于Python萌新来说,最担心的可能就是Python会不会和我之前学过的语言有冲突,这一点无需担心。Python简洁、灵活、通用,几乎可以和任何语言、设备、平台、场景连接,因此被称为胶水语言。
除了上面提到的领域以外,Python在其它领域也发挥着不可磨灭的作用,金融离不开Python、游戏离不开Python、桌面应用离不开Python,总之一句话概括就是:
人生苦短,我用Python
三、Python缺点
Python有着上面众多优点,并且每一个优点看起来都是那么的诱人,这也是Python流行的主要原因。但是任何一门编程语言都有缺点,Python也不例外,Python的缺点主要有以下几个:
Python的运行速度慢:这是Python的主要缺点,和c相比非常慢,因为Python是解释型语言,代码在执行时会一行一行的翻译成机器码,这个过程非常耗时。但这并不是一个很严重的问题,一般情况下,我们不会那Python和C/C++去比较,因为用户根本感觉不到这个时间,执行一个C/C++程序可能需要2.001秒,执行一个同样的Python程序需要2.1秒,用户能感觉到2.001秒和2.1秒的区别吗?显然不能。如果Python的运行速度确实影响到了你,那么你可以将Python和C结合使用,将占用运行速度的那一块代码用C编写,以提高整体效率。
PythonGIL锁限制并发:Python的另一个大问题就是对多处理器支持不太好。GIL(Global Interpreter Lock)指全局解释器锁,当Python的默认解释器要执行时,都需要先去申请这个锁,这意味着试图通多多线程扩展应用程序时,总是被这个锁限制。如果用户需要多并发,可以使用多进程的架构来实现,也可以选择不同的Python来实现多并发。
Python版本不兼容:几乎所有的软件更新迭代时,总会向后兼容,比如word2016可以打开word2013的文件,如果不能做到向后兼容的话,很大概率会被用户无情的抛弃。但是在Python中,一个很大的吐槽点就是Python3和Python2不能互相兼容,大量的Python工程师都为此头疼。萌新肯定有这样的疑问,学习Python2还是Python3,这里我的建议是学习Python3,Python2已经宣布只会维护到2020年,而且大量的类库已经不支持Python2了,同时官方建议学习Python3.
#1 初识Python的更多相关文章
- Python导出Excel为Lua/Json/Xml实例教程(一):初识Python
Python导出Excel为Lua/Json/Xml实例教程(一):初识Python 相关链接: Python导出Excel为Lua/Json/Xml实例教程(一):初识Python Python导出 ...
- Python开发【第一篇】:初识Python
初识python 一.python简介 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解 ...
- Python开发【第二篇】:初识Python
Python开发[第二篇]:初识Python Python简介 Python前世今生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏 ...
- 初识python面向对象
一.初识python面向对象: class Person: #使用class关键字定义一个类 age=0 #类变量(静态变量) def eat(self,food): #定义一个方法 self.age ...
- 篇2 安卓app自动化测试-初识python调用appium
篇2 安卓app自动化测试-初识python调用appium --lamecho辣么丑 1.1概要 大家好!我是lamecho(辣么丑),上一篇也是<安卓app自动化测 ...
- 2017-06-22初识python
初识python #!/usr/bin/env python (python解释器的文件路径)# -*- coding:utf-8 -*- (使用的编码内型)# python 2.7 <需要加第 ...
- day01 初识Python
今日主要内容 1.初识python 2.简单了解下python的数据类型 nubmer=int(input("请输入数字大小:")) if nubmer>66: print( ...
- @1-2初识Python爬虫
初识Python爬虫 Python爬虫(入门+进阶) DC学院 环境搭建: Python2与Python3的差异:python2与python3整体差异不大,大多是一些语法上的区别,考虑到py ...
- 初识python(二)
初识python(二) 1.变量 变量:把程序运行的中间结果临时的存在内存里,以便后续的代码调用. 1.1 声明变量: #!/usr/bin/env python # -*- coding: utf- ...
- 初识python (一)
初识Python(一) python2和python3的一些区别 Python2 和 Python3 区别汇总:http://www.cnblogs.com/bigtreei/p/7806288.ht ...
随机推荐
- Linux环境下java开发环境搭建一 JDK搭建
第一步:下载jdk压缩文件 第二步:上传到家目录下的soft目录下,可以采用winscp,此处下载的是.tar.gz文件 第三步:解压压缩文件,并在/usr/local目录下创建一个jdk7的目录,并 ...
- Xpath在选择器中正确,在代码中返回的是空列表问题
一.问题: 在进行爬虫的时候我们会用到xpath解析html文件,但是会有一种情况就是在xpath选择器中可以使用,但是在代码中就无法使用的情况. 二.原因: 1.是元素中有tbody的原因,这个元素 ...
- Unittest中TestCase类中定义的几个特殊方法
1.setUp():每个测试方法运行前运行,测试前的初始化工作: 2.tearDown():每个测试方法运行结束后运行,测试后的清理工作: 3.setUpClass():所有的测试方法运行前运行,单元 ...
- Solidity合约记录——(三)如何在合约中对操作进行权限控制
合约中一般会有多种针对不同数据的操作:例如对于存证内容的增加.更新及查询,若不进行一套符合要求的权限控制,事实上整个合约在真实环境下是没有多少使用价值的.那么应当如何对合约的权限进行划分?我们针对So ...
- Html5与Css3知识点拾遗(五)
css3更新的颜色 RGBA:红.绿.蓝.不透明度 rgba(89,0,127,0.4); HSL和HSLA:色相.饱和度.亮度.不透明度 hsl(282,100%,25%); hsl(282,100 ...
- Hadoop和一般数据库的区别?
难道一般的数据库比如PostgreSQL就不可以做集群吗?像Oracle.SQL Sever它们就没有发明这一功能吗? https://www.jianshu.com/p/525cfe07badc H ...
- winSCP无法连接虚拟机Linux解决
刚在虚拟机上装上Linux(Centos7)后使用winSCP建立文件共享发现连接超时,经过几个小时的查找发现Linux中没有eth0文件,这说明其网卡名不是eth0,在网上查过一些解决办法有的通过修 ...
- Explain Shell 网站(解释各种Shell命令)
[Explain Shell 网站] 调用语法: https://explainshell.com/explain?cmd= shell命令 示例 结果如下图:
- 使用Lucene-Spatial实现集成地理位置的全文检索
Lucene通过Spatial包提供了对基于地理位置的全文检索的支持,最典型的应用场景就是:“搜索中关村附近1公里内的火锅店,并按远近排序”.使用Lucene-Spatial添加对地理位置的支持,和之 ...
- Qt之实现网络下发配置的半透明友好提示界面
一.说明 在使用Qt开发的网管客户端程序中,网管客户端主要负责显示设备信息以及对设备下发配置信息等,如配置设备名字.更新设备程序等:由于在网管客户端程序的操作要先经过服务器处理,再由服务器将该命令转发 ...