0. 前言

最近在从头梳理Python的相关知识,有助于以后更好地学习新知识。这篇博客,我简单介绍一下Python语言的有关内容。

1. Python介绍

Python的创始人为荷兰人吉多·范罗苏姆(Guido van Rossum)。1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,作为ABC 语言的一种继承。之所以选中Python(大蟒蛇的意思)作为该编程语言的名字,是取自英国20世纪70年代首播的电视喜剧《蒙提.派森干的飞行马戏团》(Monty Python's Flying Circus)。[百度百科]

Python是一种面向对象的、解释型、动态数据类型程序设计语言,但它也是一种强类型语言。

  • 面向对象:一种软件开发方法,早期的编程是基于面向过程的方法的,也就是像C语言一样,啥都写成一个函数。但是随着工业项目的开发越来越大型,思路越来越复杂,面向对象的方法就诞生了,它的核心思想是将所有事物转化为一个个对象,将现实世界中的关系抽象成类和继承,再通过这种思路去对现实世界进行抽象与数字建模。

  • 解释型: 传统的编译型语言是通过编译器将源码编译成机器语言,而解释型语言是先将代码翻译成中间代码,再通过解释器进行解释运行的。(移步下方有介绍Python解释器种类。)

  • 动态数据类型: 不用在初始化时事先声明一个变量的数据类型是什么,你放什么数据进去,这个变量就是什么类型。很多同学容易将动态数据类型与弱类型搞混,弱类型是与数据类型转换相关的,而动态数据类型是与变量初始状态相关的。

  • 强类型: 也就是解释器不会自动转换变量数据类型,不像JavaScript,输入一个数字就自动将它转为整型,在Python里,输入一个数字它就是个字符,需要手动进行数据类型转换。

2. Python解释器

  • 官方CPython

C语言开发,最广泛的Python解析器。

  • IPython

一个交互式、功能增强的CPython。

  • PyPy

Python语言写的Python解释器,JIT技术,动态编译Python代码,因为JIT技术所以更灵活,更易于使用和试验。

  • Jython

Python的源代码转化成Java的字节码,跑在JVM上,既有CPython中继承的模块库,又可以调用Java类,所以它已经成为一个完整的语言了。

  • IronPython

与Jython类似,运行在.Net平台上的解释器,Python代码被转化成.Net的字节码。

3. 设计理念

很多同学都有听说,“人生苦短,我用Python。”这样的话。这是因为Python语言的设计理念之一就是:能用一种方法就只用这种方法。一个容易解释的方法就是好方法。在Python中内置有Python之禅。英语较好的同学可以看看。

# 输入这个语句可以看到The Zen of Python
import this
The Zen of Python, by Tim Peters Beautiful is better than ugly. 优美胜于丑陋
Explicit is better than implicit. 明了胜于晦涩
Simple is better than complex. 简单胜过复杂
Complex is better than complicated. 复杂胜过凌乱
Flat is better than nested.      扁平胜于嵌套
Sparse is better than dense.      间隔胜于紧凑
Readability counts.           可读性很重要
Special cases aren't special enough to break the rules. 即使假借特例的实用性之名,也不违背这些规则
Although practicality beats purity.   虽然实用性次于纯度
Errors should never pass silently.    错误不应该被无声的忽略
Unless explicitly silenced.        除非明确的沉默       
In the face of ambiguity, refuse the temptation to guess. 当存在多种可能时,不要尝试去猜测
There should be one-- and preferably only one --obvious way to do it. 应该有一个,最好只有一个,明显能做到这一点
Although that way may not be obvious at first unless you're Dutch.虽然这种 方式可能不容易,除非你是python之父
Now is better than never. 现在做总比不做好
Although never is often better than *right* now. 虽然过去从未比现在好
If the implementation is hard to explain, it's a bad idea. 如果这个实现不容易解释,那么它肯定是坏主意
If the implementation is easy to explain, it may be a good idea. 如果这个实现容易解释,那么它很可能是个好主意
Namespaces are one honking great idea -- let's do more of those! 命名空间是一种绝妙的理念,应当多加利用
>>>

4. Python的发展

Python因为近年来机器学习和人工智能的兴起,也被越来越多人使用。但是它本身也是一门非常优秀的语言,也可以用于web开发、游戏开发、自动化等方面。截止至2018.12,Python在TIOBE排行榜排第三名。

TIOBE排行榜是根据互联网上有经验的程序员、课程和第三方厂商的数量,并使用搜索引擎(如Google、Bing、Yahoo!)以及Wikipedia、Amazon、YouTube统计出排名数据,反映某个编程语言的热门程度。

5. 写在最后

无论是什么语言,只要学好了,都能排上用场。既然选择了Python,那便风雨兼程。

与各位共勉。

Python的简单介绍的更多相关文章

  1. Python redis 简单介绍

    Python redis 简单介绍 1.安装 终端输入: pip(or)pip3.6 install redis 安装成功 2.哈哈,发现我并没有redis服务可以访问,所以到这里,在本机安装了red ...

  2. python 的排名,已经python的简单介绍

    我在今天看了一篇文章,是简书的全网程序猿写的,Java已经退出神坛,python稳居第一. python是由龟叔写的,它在英文的意思是蟒蛇. 根据编程语言流行指数排行榜2019年2月的榜单 据了解,目 ...

  3. 用Py2exe打包Python脚本简单介绍

    一.简述      Py2exe,从这个名字上就可以理解,把Python脚本转换为windows平台上面可以运行的可执行程序(*.exe)的工具.经过转换后,你可以不 用安装Python的执行环境就可 ...

  4. Python爬虫简单介绍

    相关环境: Python3 requests库 BeautifulSoup库 一.requests库简单使用 简单获取一个网页的源代码: import requests sessions = requ ...

  5. python lambda简单介绍

    python lambda 在python中,如果想要创建函数需要使用关键字def,而如果想要创建匿名函数,就需要使用lambda. lambda创建的函数和def创建的函数有什么区别? def创建的 ...

  6. python sshtunnel 简单介绍

    背景,公司的很多服务包括数据库访问都需要通过跳板机访问,为日常工作及使用带来了麻烦,特别数python直接操作数据更是麻烦了,所以一直想实现python 通过跳板机访问数据库的操作. 安装 pip3. ...

  7. Python: Pycharm简单介绍

    1. Pycharm是什么?                                                                                       ...

  8. 利用Python进行数据分析(7) pandas基础: Series和DataFrame的简单介绍

    一.pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主要目的是为了数据分析.它提供了大量高级的数据结构和对数据处理的方法. pandas 有两个主要的数据结构 ...

  9. 利用Python进行数据分析(4) NumPy基础: ndarray简单介绍

    一.NumPy 是什么 NumPy 是 Python 科学计算的基础包,它专为进行严格的数字处理而产生.在之前的随笔里已有更加详细的介绍,这里不再赘述. 利用 Python 进行数据分析(一)简单介绍 ...

随机推荐

  1. Libsvm Java

    在java环境下用Libsvm包解决一个多分类问题. 1.将训练数据和测试数据按照libsvm的数据格式存放 可以写程序直接构造,libsvm的数据格式如下 Label 1:value 2:value ...

  2. 《探索未知种族之osg类生物》目录

    精力有限,博客园不在更新<探索未知种族之osg类生物>.在这里列出所有文章目录(持续更新)有兴趣的同学可以看看. 探索未知种族之osg类生物[目录] 前序 探索未知种族之osg类生物--- ...

  3. webpack 打包问题

    Project is running at http://localhost:8080/webpack output is served from /dist/webpack: wait until ...

  4. HDU1060

    #include <bits/stdc++.h> using namespace std; int main() { int n; long long x; double t,ans; c ...

  5. 一张图说明TCP和UCP协议

    图片来自网络. 本来不想打字了,但是博客园有字数限制... 第一次 第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认:SYN:同步序列编号( ...

  6. 那一夜,风雪交加,我在搞jquery------专题之jquery选择器

    我们今天探讨下Jquery的用法,主要是研究选择器. 选择器可以分成四类: 1.基本选择器 核心代码: <script type="text/javascript"> ...

  7. 如何选择合适的PHP版本

    PHP版本很多,包括32位64位以及线程安全与非线程安全在内的php版本多达几百个,应该如何选择PHP版本呢 PHP32和64的选择和区别 32bit的php的整型数据最大最小正负2GB左右(0x7F ...

  8. [C#.net]SQL参数传入空值报错解决方案

    C#中的null与SQL中的NULL是不一样的,SQL中的NULL用C#表示出来就是DBNull.Value. 注意:SQL参数是不能接受C#的null值的,传入null就会报错. SqlComman ...

  9. vue框架中的日期组件转换为yyy-mm-dd格式

    最近在用vue框架写一个app,这个是用到的日期格式转换,把下面的标准格式转换为字符串连接格式

  10. call和apply(学习笔记)

    call() call() 方法调用一个函数, 其具有一个指定的this值和分别地提供的参数(参数的列表). 语法: function.call(thisArg, arg1, arg2, ...) 参 ...