认识 Python

人生苦短,我用 Python —— Life is short, you need Python

目标

  • Python 的起源
  • 为什么要用 Python?
  • Python 的特点
  • Python 的优缺点

01. Python 的起源

Python 的创始人为吉多·范罗苏姆(Guido van Rossum)

  1. 1989 年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的解释程序,作为 ABC 语言的一种继承(感觉下什么叫牛人
  2. ABC 是由吉多参加设计的一种教学语言,就吉多本人看来,ABC 这种语言非常优美和强大,是专门为非专业程序员设计的。但是 ABC 语言并没有成功,究其原因,吉多认为是非开放造成的。吉多决心在 Python 中避免这一错误,并获取了非常好的效果
  3. 之所以选中 Python(蟒蛇) 作为程序的名字,是因为他是 BBC 电视剧——蒙提·派森的飞行马戏团(Monty Python's Flying Circus)的爱好者
  4. 1991 年,第一个 Python 解释器 诞生,它是用 C 语言实现的,并能够调用 C 语言的库文件

1.1 解释器(科普)

计算机不能直接理解任何除机器语言以外的语言,所以必须要把程序员所写的程序语言翻译成机器语言,计算机才能执行程序。将其他语言翻译成机器语言的工具,被称为编译器

编译器翻译的方式有两种:一个是编译,另外一个是解释。两种方式之间的区别在于翻译时间点的不同。当编译器以解释方式运行的时候,也称之为解释器

  • 编译型语言:程序在执行之前需要一个专门的编译过程,把程序编译成为机器语言的文件,运行时不需要重新翻译,直接使用编译的结果就行了。程序执行效率高,依赖编译器,跨平台性差些。如 C、C++
  • 解释型语言:解释型语言编写的程序不进行预先编译,以文本方式存储程序代码,会将代码一句一句直接运行。在发布程序时,看起来省了道编译工序,但是在运行程序的时候,必须先解释再运行

编译型语言和解释型语言对比

  • 速度 —— 编译型语言比解释型语言执行速度快
  • 跨平台性 —— 解释型语言比编译型语言跨平台性好

1.2 Python 的设计目标

1999 年,吉多·范罗苏姆向 DARPA 提交了一条名为 “Computer Programming for Everybody” 的资金申请,并在后来说明了他对 Python 的目标:

  • 一门简单直观的语言并与主要竞争者一样强大
  • 开源,以便任何人都可以为它做贡献
  • 代码像纯英语那样容易理解
  • 适用于短期开发的日常任务

这些想法中的基本都已经成为现实,Python 已经成为一门流行的编程语言

1.3 Python 的设计哲学

  1. 优雅
  2. 明确
  3. 简单
  • Python 开发者的哲学是:用一种方法,最好是只有一种方法来做一件事
  • 如果面临多种选择,Python 开发者一般会拒绝花俏的语法,而选择明确没有或者很少有歧义的语法

在 Python 社区,吉多被称为“仁慈的独裁者”

02. 为什么选择 Python?

  • 代码量少
  • ……

同一样问题,用不同的语言解决,代码量差距还是很多的,一般情况下 Python 是 Java 的 1/5,所以说 人生苦短,我用 Python

03. Python 特点

  • Python 是完全面向对象的语言

    • 函数模块数字字符串都是对象,在 Python 中一切皆对象
    • 完全支持继承、重载、多重继承
    • 支持重载运算符,也支持泛型设计
  • Python 拥有一个强大的标准库,Python 语言的核心只包含 数字字符串列表字典文件 等常见类型和函数,而由 Python 标准库提供了 系统管理网络通信文本处理数据库接口图形系统XML 处理 等额外的功能
  • Python 社区提供了大量的第三方模块,使用方式与标准库类似。它们的功能覆盖 科学计算人工智能机器学习Web 开发数据库接口图形系统 多个领域

面向对象的思维方式

  • 面向对象 是一种 思维方式,也是一门 程序设计技术
  • 要解决一个问题前,首先考虑 由谁 来做,怎么做事情是  的职责,最后把事情做好就行!
    • 对象 就是 
  • 要解决复杂的问题,就可以找多个不同的对象各司其职,共同实现,最终完成需求

04. Python 的优缺点

4.1 优点

  • 简单、易学
  • 免费、开源
  • 面向对象
  • 丰富的库
  • 可扩展性
    • 如果需要一段关键代码运行得更快或者希望某些算法不公开,可以把这部分程序用 C 或 C++ 编写,然后在 Python 程序中使用它们
  • ……

4.2 缺点

  • 运行速度
  • 国内市场较小
  • 中文资料匮乏

转载于:https://www.cnblogs.com/xiangribai/p/8594256.html

人生苦短,我用python,为什么选择python,python简介相关推荐

  1. 写python的c扩展简介

    写python的c扩展简介 2012 年 10 月 05 日 isnowfy programGo to comment python是一门非常方便的动态语言,很多你用c或者java要很多行的代码,可能 ...

  2. anaconda的python使用教程-Python,Anaconda简介安装使用教程

    ① 首先,自己也是闲来无趣刚刚开始接触Python这门语言,收集了一些关于一些初级的学前准备资料仅供大家参考 Python简介: Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚 ...

  3. python笔记基础-python学习笔记(一)python简介和基础

    1.什么是python? python是一种面向对象的,解释型的计算机语言,它的特点是语法简介,优雅,简单易学.1989年诞生,Guido(龟叔)开发. 编译型语言:代码在编译之后,编译成2进制的文件 ...

  4. php和python写爬虫-为什么选择用python做爬虫

    什么是网络爬虫? 网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成.传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当 ...

  5. Python whl文件制作简介

    Python whl文件制作简介 whl文件 为什么需要whl文件 whl文件 whl格式本质上是一个压缩包,里面包含了py文件,以及经过编译的pyd文件.使得可以在不具备编译环境的情况下,选择合适自 ...

  6. Py之mglearn:python库之mglearn简介、安装、使用方法之详细攻略

    Py之mglearn:python库之mglearn简介.安装.使用方法之详细攻略 目录 mglearn简介 1.英文解释 mglearn安装 mglearn使用方法 1.Helper functio ...

  7. Py之imgaug:Python库之imgaug简介、安装、使用方法之详细攻略

    Py之imgaug:Python库之imgaug简介.安装.使用方法之详细攻略 目录 imgaug简介 imgaug安装 imgaug使用方法 imgaug简介 用于机器学习实验中的图像增强的库,特别 ...

  8. Py之twisted:Python库之twisted简介、安装、使用方法等详细攻略

    Py之twisted:Python库之twisted简介.安装.使用方法等详细攻略 目录 twisted简介 twisted安装 twisted使用方法 twisted简介 twisted 是pyth ...

  9. Py之ipykernel:Python库之ipykernel简介、安装、使用方法之详细攻略

    Py之ipykernel:Python库之ipykernel简介.安装.使用方法之详细攻略 目录 ipykernel简介 1.特点 ipykernel安装 ipykernel使用方法 1.Kernel ...

  10. Py之pytest-shutil:Python库之pytest-shutil简介、安装、使用方法之详细攻略

    Py之pytest-shutil:Python库之pytest-shutil简介.安装.使用方法之详细攻略 目录 pytest-shutil简介 pytest-shutil安装 pytest-shut ...

最新文章

  1. CV 方向,长期看好,短期谨慎?
  2. Android重写FragmentTabHost来实现状态保存
  3. invalidate () 方法
  4. 【控制】四旋翼无人机姿态角分析
  5. Java对存储过程的调用方法 --转载
  6. Web应用_Tomcat部署及优化
  7. Rxjs BehaviorSuject 和 Observable 的区别
  8. leetcode104. 二叉树的最大深度(层序遍历09)
  9. shell 进入hadoop_Hadoop关于HDFS的基本操作(Shell命令)
  10. c语言非法字符判别,98行的四则计算器.(支持括号)加入了非法字符的检测
  11. sqlserver isnull函数使用
  12. 快速进行项目交付,实现商业价值的捷径
  13. 自定义下拉框样式兼容IE8
  14. 解决app安装失败,并出现Package [pkg1] attempting to redeclare permission [perm] already owned by [pkg2]异常的问题
  15. 信息系统分析与设计 第十章 系统总体设计
  16. 高级php工程师需要掌握的知识点
  17. Servlet入门到入坟 一站式基础及进阶——SpringMVC没它都不行 你确定不来看看——囊括初学基础以及进阶
  18. 《求职》第四部分 - 操作系统篇 - 操作系统常见问题
  19. LRUCache简单实现
  20. 错误率的计算、离散概率模型下的统计决策举例

热门文章

  1. 白话解析:一致性哈希算法 consistent hashing
  2. Java-Web JSP指令、javabean和EL表达式
  3. qint64转为qstring qt_Qt项目中TCP通信的实现方式经验总结(服务端部分)
  4. ip中继对接_鼎信通达MTG系列-语音中继网关,可和VOS,IPPBX,SIP网关进行对接
  5. 【实验】广域网点到点协议PPP PAP CHAP的双向验证、单项认证
  6. 【扫盲】小白基础-SDN详解
  7. Serverless 工程实践 | 零基础上手 Knative 应用
  8. ggplot2设置坐标轴范围_ggplot2画图时出现重合的点以及标签如何处理?有现成的包ggrepel
  9. java log4j 多个文件_为什么log4j会记录到两个单独的文件? [重复]
  10. 安可与普通测评的区别_PRINCE王子TeXtreme Tour 100系列网球拍测评(文末有福利)