『Python基础-1 』 编程语言Python的基础背景知识
#『Python基础-1 』 编程语言Python的基础背景知识
目录:
1.编程语言
1.1 什么是编程语言
1.2 编程语言的种类
1.3 常见的编程语言
1.4 编译型语言和解释型语言的对比2.Python背景知识
2.1 Python发展历程
2.2 Python的优缺点
2.3 Python的应用
2.4 Python解释器的种类
2.5 Python的执行过程
2.6 Python版本(2.x和3.x)
1.编程语言
1.1 什么是编程语言
编程语言(programming language),俗称“计算机语言”,是用来定义计算机程序的形式语言。让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动。
1.2 编程语言的种类
编程语言的种类非常的多,总的来说可以分成机器语言、汇编语言、高级语言三大类。
机器语言:
机器语言(machine language)是用二进制代码表示的计算机能直接识别和执行的一种机器指令的集合.
这种指令集,称机器码(machine code),是电脑的CPU可直接解读的数据。
- 机器语言具有灵活、直接执行和速度快等特点。
- 用机器语言编写程序较为繁琐和费时,编出的程序全是些0和1的指令代码,直观性差,容易出错
- 弱通用性: 各计算机公司设计生产的计算机,其指令的数量与功能、指令格式、寻址方式、数据格式都有差别
汇编语言:
汇编语言(assembly language)是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。汇编语言是直接面向处理器(Processor)的程序设计语言。
汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。
- 汇编语言源程序必须经过汇编,生成目标文件,然后执行。
- 汇编语言所能完成的操作不是一般高级语言所能够实现的,而且源程序经汇编生成的可执行文件不仅比较小,而且执行速度很快。
- 汇编源程序一般比较冗长、复杂、容易出错,而且使用汇编语言编程需要有更多的计算机专业知识
高级语言:
高级语言(High-level programming language)相对于机器语言和汇编语言而言,是高度封装了的编程语.
高级语言是较接近自然语言和数学公式的编程,基本脱离了机器的硬件系统,用人们更易理解的方式编写程序。
高级语言并不是特指的某一种具体的语言,而是包括很多编程语言,如流行的java,c,c++,C#,pascal,python等等.
- 高级语言有更强的表达能力,可方便地表示数据的运算和程序的控制结构,能更好的描述各种算法,而且容易学习掌握
- 高级语言编译生成的程序代码一般比用汇编程序语言设计的程序代码要长,执行的速度也慢
1.3 常见的编程语言
计算机不能直接理解高级语言,只能直接理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能执行高级语言编写的程序。
根据两种语言的翻译方式不同,我们又把常见的高级编程语言分为编译型语言和解释性语言:
- 编译型语言:
- C/C++、Pascal/Object Pascal(Delphi)等
- 解释型语言:
- JavaScript、VBScript、Perl、Python、Ruby、MATLAB 等
1.4 编译型语言和解释型语言的对比
一个是编译,一个是解释。两种方式只是翻译的时间不同:
编译型语言 | 解释型语言 |
---|---|
程序在执行之前需要一个专门的编译过程,把程序编译成为机器语言的文件 | 在运行程序的时候才翻译,每执行一次就要翻译一次 |
程序执行速度快,同等条件下对系统要求较低 | 执行速度略低,对不同系统平台间的兼容性有一定要求 |
可移植性差,在不同的OS平台上运行,需要重新编译 | 可移植性高,一套代码,只需要使用不同平台的解释器即可 |
2.Python背景知识
Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。
Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。
2.1 Python发展历程
- Python的作者,Guido von Rossum(吉多·范·罗苏姆,中国Python程序员都叫他 龟叔),荷兰人。
- 1989年开始开发,最初目的为作为ABC语言的一种继承
- 他对Python的期望是:介于C和shell之间,功能全面,易学易用,可拓展。
- Python这个名字,来自Guido所挚爱的电视剧Monty Python’s Flying Circus。
- 1991年,第一个Python编译器诞生。它是用C语言实现的,并能够调用C语言的库文件。Python创生之初便具有了:类,函数,异常处理,包含表和词典在内的核心数据类型,以及模块为基础的拓展系统。
- 2000年10月16日,发布Python 2.0,加入了内存回收机制,构成了现在Python语言框架的基础
- 2008年12月3日,发布Python 3.0
- 2014年11月,官方宣布:Python2.7将在2020年停止支持,且不再有2.8及以上的版本
- 目前3.x版本的最近版本为3.7 (2018年6月27日发布)
2.2 Python的优缺点
- Python的优点:
- 简单易学
- 开源,免费
- 可以移植在不同平台 (意味着一套代码可以开发不同操作系统的软件)
- 高层的解释型语言
- 面向对象:比C和java简单,且功能强大
- 丰富且功能齐全的Python标准库
- Python的缺点:
- 执行效率慢 (解释型语言和编译型语言相比较)
2.3 Python的应用
- 技术领域:
- 编程开发: WEB开发,GUI编程,游戏开发,运维开发
- 工具脚本: 自动化控制,批量处置
- 数据采集: 网络爬虫
- 数据分析: 数据建模,数据挖掘,数据可视化,商业分析
- 人工智能: 机器学习,计算机视觉,无人驾驶
- 行业应用:
- 豆瓣:公司几乎所有的业务均是通过Python开发的
- 知乎:国内最大的问答社区,通过Python开发(国外Quora)
- 春雨医生:国内知名的在线医疗网站是用Python开发的
- 谷歌:Google App Engine 、code.google.com 、Google earth 、谷歌爬虫、Google广告等项目都在大量使用Python开发
- YouTube:世界上最大的视频网站YouTube就是用Python开发的
- Facebook:大量的基础库均通过Python实现的
- Dropbox:美国最大的在线云存储网站,全部用Python实现,每天网站处理10亿个文件的上传和下载
- Instagram:美国最大的图片分享社交网站,每天超过3千万张照片被分享,全部用python开发
- Redhat:世界上最流行的Linux发行版本中的yum包管理工具就是用python开发的
- CIA:美国中情局网站是用Python开发的
- NASA:美国航天局(NASA)大量使用Python进行数据分析和运算
- 搜狐、金山、腾讯、盛大、网易、百度、阿里、淘宝 、土豆、新浪、果壳等公司都在使用Python完成各种各样的任务。
2.4 Python解释器的种类
Python是一门跨平台的脚本语言,Python规定了一个Python语法规则,实现了Python语法的解释程序就成为了Python的解释器。
- CPython(ClassicPython,也就是原始的Python实现,需要区别于其他实现的时候才以CPython称呼;或解作C语言实现的Python)。这是最常用的Python版本。
- Jython(原名JPython;Java语言实现的Python,现已正式发布)。Jython可以直接调用Java的各种函数库。
- PyPy(使用Python语言写的Python)
- IronPython(面向.NET和ECMA CLI的Python实现)。- IronPython能够直接调用.net平台的各种函数库。可以将Python程序编译成.net程序。
- ZhPy(周蟒)(支持使用繁/简中文语句编写程序的Python语言)
我们现在一般普遍使用的是CPython.
2.5 Python的执行过程
- Python在执行时,首先会将.py文件中的源代码编译成Python的byte code(字节码),然后再由Python Virtual Machine(Python虚拟机)来执行这些编译好的byte code。
- 基于C的Python编译出的字节码文件,通常是.pyc格式。
2.6 Python版本(2.x和3.x)
Python的版本,目前主要分为两大类:
Python 2.x的版本的,被称为Python2:是目前用的最广泛的,比如Python 2.7.3。
Python 3.x的版本的,被称为Python3,是最新的版本的,比如Python3.5.4。
Python 2 发布于 2000 年年底,意味着较之先前版本,这是一种更加清晰和更具包容性的语言开发过程。而先前版本的 Python 应用的是 PEP (Python 增强协议),这种技术规范能向 Python 社区成员提供信息或描述这种语言的新特性。
Python 3 被视为 Python 的未来,是目前正在开发中的语言版本。作为一项重大改革,Python 3 于 2008 年年末发布,以解决和修正以前语言版本的内在设计缺陷。Python 3 开发的重点是清理代码库并删除冗余,清晰地表明只能用一种方式来执行给定的任务。对 Python 3.0 的主要修改包括将 print 语句更改为内置函数,改进整数分割的方式,并对 Unicode 提供更多的支持。
这篇笔记的参考资料:
『Python基础-1 』 编程语言Python的基础背景知识的更多相关文章
- # 2017-2018-2 20155319 『网络对抗技术』Exp8:Web基础
2017-2018-2 20155319 『网络对抗技术』Exp8:Web基础 一.原理与实践说明 1.实践具体要求 (1).Web前端HTML(0.5分) 能正常安装.启停Apache.理解HTML ...
- 2017-2018-2 20155303『网络对抗技术』Exp8:Web基础
2017-2018-2 『网络对抗技术』Exp8:Web基础 --------CONTENTS-------- 一.原理与实践说明 1.实践具体要求 2.基础问题回答 二.实践过程记录 1.Web前端 ...
- 2017-2018-2 20155303『网络对抗技术』Exp5:MSF基础应用
2017-2018-2 20155303『网络对抗技术』Exp5:MSF基础应用 --------CONTENTS-------- 一.原理与实践说明 1.实践内容 2.预备知识 3.基础问题 二.实 ...
- 2017-2018-2 20155310『网络对抗技术』Exp5:MSF基础应用
2017-2018-2 20155310『网络对抗技术』Exp5:MSF基础应用 基础问题回答 用自己的话解释什么是exploit,payload,encode exploit:由攻击者或渗透测试者利 ...
- # 2017-2018-2 20155319『网络对抗技术』Exp5:MSF基础应用
2017-2018-2 20155319『网络对抗技术』Exp5:MSF基础应用 基础问题回答 用自己的话解释什么是exploit,payload,encode exploit:使用者利用漏洞进行攻击 ...
- 2017-2018-2 20155327『网络对抗技术』Exp5:MSF基础应用
2017-2018-2 20155327『网络对抗技术』Exp5:MSF基础应用 基础问题回答 用自己的话解释什么是exploit,payload,encode exploit:使用者利用漏洞进行攻击 ...
- 机器学习|线性回归三大评价指标实现『MAE, MSE, MAPE』(Python语言描述)
原文地址 ?传送门 对于回归预测结果,通常会有平均绝对误差.平均绝对百分比误差.均方误差等多个指标进行评价.这里,我们先介绍最常用的3个: 平均绝对误差(MAE) 就是绝对误差的平均值,它的计算公式如 ...
- 2017-2018-2 20155224『网络对抗技术』Exp8:Web基础
实践具体要求 Web前端HTML(0.5分) 能正常安装.启停Apache.理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML. Web前端javascipt(0.5分) 理 ...
- 2018-2019-2 20165314『网络对抗技术』Exp5:MSF基础应用
一.原理与实践说明 1.实践内容 本实践目标是掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路.具体需要完成: 一个主动攻击实践,如ms08-067; (1分) 一个针对浏览器的攻 ...
随机推荐
- SQL-SERVER学习(二) 数据表的存储过程
在C语言的程序设计中,会把一个重复使用的功能提取出来,做成一个的函数,这样就可以减少冗余代码,且更方便维护.调用.在面向对象的设计语言中,会把一个重复使用的功能提取出来,做成一个类,同样也是为了减少冗 ...
- 【Leetcode】【Easy】Same Tree
Given two binary trees, write a function to check if they are equal or not. Two binary trees are con ...
- msvcr100.dll丢失原因及解决方法
msvcr100.dll为Visual Studio 2010的一个动态链接库,如果某程序是用它开发出来的,那么该程序的运行就有可能需要此动态链接库.有些程序直接将其打包到了安装目录,并注册,就不会出 ...
- io问题导致的insert缓慢
生产环境一日常insert在业务量加倍之后非常缓慢,对有问题sql做awr报告和10046trace得出以下结论:In the 10046 trace, the execution of sql el ...
- asp.net mvc 4.0常见的几个问题
看书的时候遇到很多不知所云的错误,都是在网上找到的解决方法,没办法,从asp.net到mcv很多的新技术,没有一点思路,只能在网上搜罗了. 1.更新产品不成功 更新产品的时候一直不能更新成功,但是很奇 ...
- Yii日志使用
Yii 提供了一个灵活可扩展的日志功能.记录的日志 可以通过日志级别和信息分类进行归类.通过使用 级别和分类过滤器,所选的信息还可以进一步路由到 不同的目的地,例如一个文件,Email,浏览器窗口等. ...
- 解决Ubuntu启动错误——kernel panic not syncing vfs unable to mount root fs on unknown-block 0 0 – error
最近在倒腾Ubuntu,然后想着怎么美化一下界面,于是照着网上的教程整了一下Flatabulous这个软件,然后好像/boot就满了.关机之后再开机就出现了如题所述的错误,无法开机,也无法进入reco ...
- PopupWindow学习笔记
最近写程序第一次用到了PopupWindow,便简单了学习了一下.特此记下自己的收获.PopupWindow是一种悬浮框,比AlertDialog要灵活的多.先简单了实现一个PopWindow的效果, ...
- VMware ESXi 6.5安装
vmware ESXI6.5安装 注意:我是用vmware模拟,选择镜像就可以进入.正常需要服务器做raid 然后安装的时候选择需要的硬盘 等待加载 按enter继续 F11同意并继续 等待扫描设备 ...
- Visual C++中MFC消息的分类
Visual C++中MFC消息的分为三类:标准(窗口)消息.命令消息.控件消息. 1.标准(窗口)消息:窗口消息一般与窗口内部运作有关,如创建窗口,绘制窗口,销毁窗口,通常,消息是从系统发到窗口,或 ...