文章目录

  • Python
    • Python特性
    • Python优点
      • 语法简单
      • 开源免费
      • 面向对象的高级语言
      • 功能扩展性强
    • Python缺点
      • 运行速度慢
      • 代码加密困难
    • Python应用领域
      • Web应用开发
      • 自动化运维
      • 人工智能领域
      • 网络爬虫
      • 科学计算
      • 游戏开发
    • Python的版本变化
    • Python的底层实现
      • Stackless Python
      • JPython
      • PyPy
  • 编译型语言和解释型语言
    • 编译型语言
    • 解释型语言
  • 总结

Python

Python英文名称为"蟒蛇",是1989年荷兰人Guido van Rossum发明的一种解释型编程语言,python是在ABC教学语言的基础上发展来的,在开发Python时,添加了很多ABC没有的功能,还设计了各种丰富而强大的库,利用这些库,可以把使用其他语言制作的各种模块(尤其是C和C++)很轻松地联结在一起,因此Python又称为"胶水"语言

Python特性

Python是一种面向对象的、解释型的、通用的、开源的脚本编程语言,Python标准库和第三方库很多,并且功能强大,同样优缺点非常明显,Python的优点在于语法简单、开源、面向对象的高级语言、同时也是解释型语言,能跨平台,由于库的强大导致其功能非常强大并且扩展性强;Python缺点在于运行速度慢,代码加密难度高

Python优点

语法简单

Python对代码格式的要求并不严格,比如在定义变量时并不需要指定其数据类型

Python是一种极简主义的编程语言,同时也将Python称为具有伪代码特质的编程语言(伪代码Pseudo Code:是一种算法描述语言,它介于自然语言和编程语言,使用伪代码的目的就是为了使被描述的算法可以容易地以任何一种编程语言实现,伪代码的特点就是结构清晰、代码简单、可读性好,并且类型自然语言)

开源免费

Python编写的代码是开源的,Python解释器和模块都是开源,开源的目的就是所有Python用户都参与进来改进Python的性能,弥补Python的漏洞,加强代码的健壮性

面向对象的高级语言

Python是支持面向对象的,但是并不强制使用面向对象,并且Python屏蔽了很多底层细节,封装较深,会自动管理内存

功能扩展性强

Pyt覆盖hon具有脚本语言中最丰富和最强大的类库,这些类覆盖了文件I/O、GUI、网络编程、数据库访问、文本操作等常用的应用场景,Python社区发展良好,除了Python官方提供的核心模块,很多第三方都会参与进来开发模块,并且都是开源模块,Python具有良好的扩展性,在一定程度上弥补了运行效率慢的缺点

Python缺点

运行速度慢

Python是属于解释型语言,运行速度慢是解释型语言的通病,导致运行时速度慢的原因并不仅仅是一般运行一般对代码进行解释,另一方面是Python屏蔽了很多底层细节,而这些细节需要很消耗资源

代码加密困难

Python是执行运行代码,因此对Python源代码加密比较困难

Python应用领域

Python作为一种功能强大的编程语言,Python的应用领域广泛,主要领域是Web应用开发、自动化运维、人工智能领域、网络爬虫、科学计算、游戏开发

Web应用开发

Python经常被用于Web开发,随着Python的Web开发框架逐渐成熟,程序员可以更加轻松开发和管理复杂的Web程序

自动化运维

在很多操作系统下,Python是标准的系统组件,大多数Linux发行版中都集成了Python,可以在终端下直接运行Python,Python标准库中包含了很多了多个可以用来调用操作系统的库,通常情况下,Python编写的系统管理脚本,无论是可读性还是性能、代码重用度以及扩展性方面,都优于普通的shell脚本

人工智能领域

Python在人工智能领域内的机器学习、神经网络、深度学习等方面都是主流的编程语言,目前主流的人工智能学习框架:Google的TensorFlow、Facebook的PyTorch都是用Python来实现的

网络爬虫

Python很早用来是编写网络爬虫的,提供了很多服务与编写网络爬虫的工具,如urllib、Selenium以及网络爬虫框架Scrapy

科学计算

Python与其他解释型语言(shell、js、php)相比,Python在数据分析、可视化方面有相当完善和优秀的库,例如Numpy、pandas,这些都可以满足编写科学计算程序

游戏开发

游戏开发一般由C++编写图形显示等高性能模块,使用Python和Lua编写游戏的逻辑,Lua体积更小,而Python支持更多的特性和数据类型

Python的版本变化

Python随着用户量和需求的提高,Python也在不断升级变化,Python的更新动态可以在Python官网的PEP文档查看,PEP文档主要包含以下几个方面:

  1. 通知:汇总Python核心开发者重要的信息
  2. 标准化:提供代码风格、文档或者其他指导意见
  3. 设计:对提交的功能进行说明

Python自从发布以来经历了三个版本:

  1. 1994年发布了Python 1.0版本
  2. 2000年发布的Python 2.0版本
  3. 2008年发布的Python 3.0版本

Python 3.0是一次重大的升级,并没有实现对版本2.0的兼容,未来主流的一些Python框架都会放弃对版本2.0的支持

Python 3.x与Python 2.x的区别

  • Python 3.x在Python 2.x的基础上做了升级
  • Python 3.x对Python 2.x的标准库进行了一定程序的重新拆分和整合
  • printf函数取代了print语句
  • Python 3.x默认使用了UTF-8编码
  • Python 3.x除法运算符/会把浮点数除法保留小数点部分
  • Python 3.x版本去除了long类型,只支持一种整数类型int,新增了bytes类型
  • Python 3.x版本只支持不等于运算符!=

Python的底层实现

Python的最早的实现方式是以C语言实现的,但是随着编程预言的不断发展,Python的实现方式也发生了变化,我们现在所称的Python实际上指的就是CPython

Stackless Python

Stackless是Python的增强版,是因为其没有依赖C的调用栈,在其基本功能上添加了解释管理器的微线程,用来替代依赖系统内核上下文切换和任务调度的普通线程,轻量化又节约资源

JPython

JPython是Python语言的Java实现,将代码编译为Java字节代码,开发人员在Python模块中可以无缝使用Java类,JPython允许人们在复杂应用系统中使用顶层脚本语言,JPython与CPython的区别在于JPython做到了真正的java垃圾回收,而不是引用计数,没有全局解释器锁,在多线程中可以充分利用多个内核

PyPy

PyPy就是Python完成重写的,Python解释器本身就是用Python写的,PyPy 通常比 CPython 实现要快得多。基于这一特性,使得越来越多的开发人员决定在生产环境中切换到 PyPy;PyPy与CPython区别在于使用垃圾回收,而不是引用计数,集成跟踪JIT编译器,可以显著提高性能

编译型语言和解释型语言

编译型语言

编译型语言:将所有源代码一次性转换成二进制指令,即生成一个可执行程序,实现这种转换的工具为编译器,比如说C、C++、Golang、汇编等

编译型语言一般是不能跨平台,也就是不能在不同操作系统之间随意切换,不跨平台主要是可执行程序不能跨平台,源代码不能跨平台

  • 可执行程序不能跨平台:因为不用操作系统对可执行文件的内部结构要求不同,彼此之间不能兼容
  • 源代码不能跨平台:不同平台支持的函数、类型、变量都不可能,所以源代码一般不能跨平台编译使用

解释型语言

解释型语言:将一边执行一边转换,不会生成可执行程序,实现这种转换的工具为解释器,比如说Python、JavaScript、PHP

解释型语言随着每次执行程序使用的功能不一样,每次执行程序都需要重新装换源代码,所以解释型语言的执行效率要低于编译型语言,解释型语言是支持跨平台,该跨平台是指源代码跨平台,而不是指解释器跨平台,解释器只负责将源代码转化为机器码,解释器是不支持跨平台的

  • 不同平台的解释器都必须遵循同样的语法,这样才能是源代码在不同平台下解释器得到正确的转换

编译器和解释器主要包括:词法分析、语法分析、语义分析、性能优化、生成可执行文件

类型 原理 优点 缺点
编译型语言 通过专门的编译器,将所有源代码一次性转换成特定平台(Windows、Linux 等)执行的机器码(以可执行文件的形式存在)。 编译一次后,脱离了编译器也可以运行,并且运行效率高。 可移植性差,不够灵活。
解释型语言 由专门的解释器,根据需要将部分源代码临时转换成特定平台的机器码。 跨平台性好,通过不同的解释器,将相同的源代码解释成不同平台下的机器码。 一边执行一边转换,效率很低。

总结

Python英文名称为"蟒蛇",是1989年荷兰人Guido van Rossum发明的一种解释型编程语言,,Python 属于典型的解释型语言,所以运行 Python 程序需要解释器的支持,只要你在不同的平台安装了不同的解释器,代码就可以随时运行

赶紧学习起来吧!我是一个正在努力找回自我的人,希望能和一起学习的人成长,有错误的地方请各位大佬帮忙指正,如果觉得有帮助就点个赞当作对我的一个小肯定❤

【Python上分之路】第一篇:Python是什么?相关推荐

  1. Python人工智能之路 - 第一篇 : 你得会点儿Python基础

    Python 号称是最接近人工智能的语言,因为它的动态便捷性和灵活的三方扩展,成就了它在人工智能领域的丰碑 走进Python,靠近人工智能 一.编程语言Python的基础 之 "浅入浅出&q ...

  2. Python成长之路第一篇(4)_if,for,while条件语句

    有了以上的基本基础,已经上面写的几个小练习,大家肯定有很多的不满,比如查询为什么查询一次就退出了呢?下面我们来学习条件语句 一.万恶的加号 以前我们在print的时候如果要加上变量都有是使用+来作为连 ...

  3. 我的Python成长之路---第一天---Python基础(5)---2015年12月26日(雾霾)

    六.流程控制 与C语言不通的事Python的流程控制的代码块不是用{}花括号表示的,而是用强制缩进来,而且缩进必须一致,官方推荐是使用4个空格,不建议使用使用tab(制表符)做缩进,一是不同的系统ta ...

  4. python入门之玩转列表我的菜单_我的Python成长之路---第一天---Python基础(作业2:三级菜单)---2015年12月26日(雾霾)...

    #!/usr/bin/env python3#coding:utf-8 '''Created on: 2015年12月30日 @author: 张晓宇 Email: 61411916@qq.com V ...

  5. Python养发之路 - 安装篇

    Python养发之路 - 安装篇 作者:养发两年半的Python数据工程师 编辑时间: 2021年7月3日 作者有话说: 新手先跟着做,遇到问题直接百度.(跟着教程走,99%不会出问题) 更新时间:每 ...

  6. Python和Java结合的项目实战_[项目实战] Python高级教程项目实战篇 Python和Java结合的项目实战 视频教程 [...

    资源介绍 课程简介:xa0xa0 Python高级教程项目实战篇 Python和Java结合的项目实战 视频教程 教学视频 ----------------------课程目录 Python项目实战篇 ...

  7. Python 学习笔记 第三篇 Python实现网易云评论网页爬虫+词云展示 (Pycharm+Mysql)

    初始条件,具体可见我的其他文章. 1.安装Python.Python 学习笔记 第一篇 Python的安装与配置 2.安装Pycharm,并导入第三方包.Python 学习笔记 第二篇 Python ...

  8. Pytorch上分之路—ShuffleNetv3(鸟群分类算法)

    Pytorch上分之路-ShuffleNetv3(鸟群分类算法) 本次的内容是用pytorch写一个简单的分类算法,选择了200鸟群的数据集,数据集的话可以自己到网上去找,挺容易的. 目录 **Pyt ...

  9. 八、给小白看的第一篇Python基础教程

    本文是第一篇,一共四篇打下Python基础 @Author:Runsen @Date:Writern By 2019/04/15 and supplied By 2020/3/31 @公众号:Pyth ...

最新文章

  1. JS实现点击左边标题栏,右边显示对应信息
  2. Professional IronPython
  3. 非常有用的并发控制-循环栅栏CyclicBarrier
  4. final修饰符,finally,finalize区别
  5. 接口测试——Jmeter直连数据库无法获取查找到的数据个数
  6. 科学网—中文普通话语音识别DEMO,LilyMandarinSpeechRecognition V1.0 - 石自强的博文...
  7. D进制A+B(20)
  8. linux clone函数ptid,pthread_create到ret_fast_syscalls 参数和栈的变化
  9. 离散数学 习题篇——生成主范式
  10. 【专题5: 硬件设计】 之 【70.开关电源 之 电感计算例子】
  11. 毕业论文怎么降重?有什么技巧么?
  12. 程序员必备狂拽炫酷吊炸天的动效神器
  13. css_radius-corner语法分析
  14. 【FATE联邦学习】FATE联邦学习使用GPU、指定cuda下标
  15. git 客户端 所有客户端 钩子_git自定义项目钩子和全局钩子
  16. 怎么样才能在CODELITE中输出中文呢!!!
  17. SD卡里的视频无法正常播放出来怎么办?
  18. 怎么说离职原因新的公司比较能接受?
  19. 阿里巴巴的 eclipse 代码检查工具如何安装?
  20. 最新PHP/SG11扩展解密视频教程分享

热门文章

  1. GIS的基本概念二:大地水准面、旋转椭球体(椭球体)、大地基准面
  2. SVN the working copy needs to be upgraded svn 解决办法
  3. 图片无缝拼接 html,snapseed如何无缝拼接图片
  4. pyecharts全国地图和省级地图和水滴图
  5. 电脑C盘空间严重不足,教你5招!电脑内存瞬间多出10个G
  6. 谷歌公布云游戏平台「Stadia」 预计2019年上线
  7. erp 计算机语言,erp开发用什么语言
  8. PC usb蓝牙发射器
  9. Spark核心编程系列(一)——RDD详解
  10. php讯飞文本纠错接口对接