人生苦短,我用python,为什么选择python,python简介
认识 Python
人生苦短,我用 Python —— Life is short, you need Python

目标
- Python 的起源
- 为什么要用 Python?
- Python 的特点
- Python 的优缺点
01. Python 的起源
Python 的创始人为吉多·范罗苏姆(Guido van Rossum)

- 1989 年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的解释程序,作为 ABC 语言的一种继承(感觉下什么叫牛人)
- ABC 是由吉多参加设计的一种教学语言,就吉多本人看来,ABC 这种语言非常优美和强大,是专门为非专业程序员设计的。但是 ABC 语言并没有成功,究其原因,吉多认为是非开放造成的。吉多决心在 Python 中避免这一错误,并获取了非常好的效果
- 之所以选中 Python(蟒蛇) 作为程序的名字,是因为他是 BBC 电视剧——蒙提·派森的飞行马戏团(Monty Python's Flying Circus)的爱好者
- 1991 年,第一个 Python 解释器 诞生,它是用 C 语言实现的,并能够调用 C 语言的库文件
1.1 解释器(科普)
计算机不能直接理解任何除机器语言以外的语言,所以必须要把程序员所写的程序语言翻译成机器语言,计算机才能执行程序。将其他语言翻译成机器语言的工具,被称为编译器
编译器翻译的方式有两种:一个是编译,另外一个是解释。两种方式之间的区别在于翻译时间点的不同。当编译器以解释方式运行的时候,也称之为解释器

- 编译型语言:程序在执行之前需要一个专门的编译过程,把程序编译成为机器语言的文件,运行时不需要重新翻译,直接使用编译的结果就行了。程序执行效率高,依赖编译器,跨平台性差些。如 C、C++
- 解释型语言:解释型语言编写的程序不进行预先编译,以文本方式存储程序代码,会将代码一句一句直接运行。在发布程序时,看起来省了道编译工序,但是在运行程序的时候,必须先解释再运行
编译型语言和解释型语言对比
- 速度 —— 编译型语言比解释型语言执行速度快
- 跨平台性 —— 解释型语言比编译型语言跨平台性好
1.2 Python 的设计目标
1999 年,吉多·范罗苏姆向 DARPA 提交了一条名为 “Computer Programming for Everybody” 的资金申请,并在后来说明了他对 Python 的目标:
- 一门简单直观的语言并与主要竞争者一样强大
- 开源,以便任何人都可以为它做贡献
- 代码像纯英语那样容易理解
- 适用于短期开发的日常任务
这些想法中的基本都已经成为现实,Python 已经成为一门流行的编程语言
1.3 Python 的设计哲学
- 优雅
- 明确
- 简单
- 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简介相关推荐
- 写python的c扩展简介
写python的c扩展简介 2012 年 10 月 05 日 isnowfy programGo to comment python是一门非常方便的动态语言,很多你用c或者java要很多行的代码,可能 ...
- anaconda的python使用教程-Python,Anaconda简介安装使用教程
① 首先,自己也是闲来无趣刚刚开始接触Python这门语言,收集了一些关于一些初级的学前准备资料仅供大家参考 Python简介: Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚 ...
- python笔记基础-python学习笔记(一)python简介和基础
1.什么是python? python是一种面向对象的,解释型的计算机语言,它的特点是语法简介,优雅,简单易学.1989年诞生,Guido(龟叔)开发. 编译型语言:代码在编译之后,编译成2进制的文件 ...
- php和python写爬虫-为什么选择用python做爬虫
什么是网络爬虫? 网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成.传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当 ...
- Python whl文件制作简介
Python whl文件制作简介 whl文件 为什么需要whl文件 whl文件 whl格式本质上是一个压缩包,里面包含了py文件,以及经过编译的pyd文件.使得可以在不具备编译环境的情况下,选择合适自 ...
- Py之mglearn:python库之mglearn简介、安装、使用方法之详细攻略
Py之mglearn:python库之mglearn简介.安装.使用方法之详细攻略 目录 mglearn简介 1.英文解释 mglearn安装 mglearn使用方法 1.Helper functio ...
- Py之imgaug:Python库之imgaug简介、安装、使用方法之详细攻略
Py之imgaug:Python库之imgaug简介.安装.使用方法之详细攻略 目录 imgaug简介 imgaug安装 imgaug使用方法 imgaug简介 用于机器学习实验中的图像增强的库,特别 ...
- Py之twisted:Python库之twisted简介、安装、使用方法等详细攻略
Py之twisted:Python库之twisted简介.安装.使用方法等详细攻略 目录 twisted简介 twisted安装 twisted使用方法 twisted简介 twisted 是pyth ...
- Py之ipykernel:Python库之ipykernel简介、安装、使用方法之详细攻略
Py之ipykernel:Python库之ipykernel简介.安装.使用方法之详细攻略 目录 ipykernel简介 1.特点 ipykernel安装 ipykernel使用方法 1.Kernel ...
- Py之pytest-shutil:Python库之pytest-shutil简介、安装、使用方法之详细攻略
Py之pytest-shutil:Python库之pytest-shutil简介.安装.使用方法之详细攻略 目录 pytest-shutil简介 pytest-shutil安装 pytest-shut ...
最新文章
- CV 方向,长期看好,短期谨慎?
- Android重写FragmentTabHost来实现状态保存
- invalidate () 方法
- 【控制】四旋翼无人机姿态角分析
- Java对存储过程的调用方法 --转载
- Web应用_Tomcat部署及优化
- Rxjs BehaviorSuject 和 Observable 的区别
- leetcode104. 二叉树的最大深度(层序遍历09)
- shell 进入hadoop_Hadoop关于HDFS的基本操作(Shell命令)
- c语言非法字符判别,98行的四则计算器.(支持括号)加入了非法字符的检测
- sqlserver isnull函数使用
- 快速进行项目交付,实现商业价值的捷径
- 自定义下拉框样式兼容IE8
- 解决app安装失败,并出现Package [pkg1] attempting to redeclare permission [perm] already owned by [pkg2]异常的问题
- 信息系统分析与设计 第十章 系统总体设计
- 高级php工程师需要掌握的知识点
- Servlet入门到入坟 一站式基础及进阶——SpringMVC没它都不行 你确定不来看看——囊括初学基础以及进阶
- 《求职》第四部分 - 操作系统篇 - 操作系统常见问题
- LRUCache简单实现
- 错误率的计算、离散概率模型下的统计决策举例
热门文章
- 白话解析:一致性哈希算法 consistent hashing
- Java-Web JSP指令、javabean和EL表达式
- qint64转为qstring qt_Qt项目中TCP通信的实现方式经验总结(服务端部分)
- ip中继对接_鼎信通达MTG系列-语音中继网关,可和VOS,IPPBX,SIP网关进行对接
- 【实验】广域网点到点协议PPP PAP CHAP的双向验证、单项认证
- 【扫盲】小白基础-SDN详解
- Serverless 工程实践 | 零基础上手 Knative 应用
- ggplot2设置坐标轴范围_ggplot2画图时出现重合的点以及标签如何处理?有现成的包ggrepel
- java log4j 多个文件_为什么log4j会记录到两个单独的文件? [重复]
- 安可与普通测评的区别_PRINCE王子TeXtreme Tour 100系列网球拍测评(文末有福利)