本节内容

  1. Python介绍
  2. 发展史
  3. Python 2 or 3?
  4. 安装
  5. Hello World程序
  6. 变量
  7. 用户输入
  8. 模块初识
  9. .pyc是个如何鬼?
  10. 数据类型初识
  11. 数码运算
  12. 表达式if …else语句
  13. 表达式for 循环
  14. break and continue 
  15. 表达式while 循环
  16. 学业需求

 

本节内容

图表来自互联网

一、 Python介绍

python的创办者为吉多·范罗苏姆(吉多 van
罗斯尔um)。一9八6年的圣诞节中间,吉多·范罗苏姆为了在多伦多打发时间,决心开垦二个新的本子解释程序,作为ABC语言的一种持续。  

最新的TIOBE排名榜,Python赶超PHP吞没第陆, Python崇尚美丽、清晰、简单,是二个爱不释手并大面积选取的语言。

金沙注册送58 1

由上海教室可知,Python全体呈上升趋势,反映出Python应用越发广泛并且也慢慢获得行业内部的确认!!!

Python可以使用于广大天地,如:数据解析、组件集成、互联网服务、图像管理、数值计算和科学计算等大多领域。近日职业差不离具备大中型互连网商家都在选取Python,如:Youtube、Dropbox、BT、Quora(中华人民共和国果壳网)、豆瓣、天涯论坛、谷歌、Yahoo!、照片墙、NASA、百度、腾讯、汽车之家、美团等。

近期Python重要应用领域:

  • 云计算: 云计算最火的言语, 规范应用OpenStack
  • WEB开发: 众多妙不可言的WEB框架,众多巨型网址均为Python开采,Youtube,
    Dropbox, 豆瓣。。。, 标准WEB框架有Django
  • 正确运算、人工智能: 典型库NumPy, SciPy, Matplotlib, Enthought
    librarys,pandas
  • 系统运转: 运行人员必备语言
  • 金融:量化交易,金融分析,在经济工程领域,Python不但在用,且用的最多,而且珍视渐渐增加。原因:作为动态语言的Python,语言结构清晰简单,库丰盛,成熟牢固,科学总计和计算分析都很牛逼,生产作用远远高于c,c++,java,尤其擅长战略回测
  • 图形GUI: PyQT, WxPython,TkInter

Python在一些供销合作社的行使: 

 

  • 谷歌(Google):谷歌(Google) App Engine 、code.google.com 、谷歌 earth
    、谷歌(谷歌(Google))爬虫、谷歌(Google)广告等类别都在大量施用Python开采
  • CIA: 美利坚联邦合众国中情局网址正是用Python开拓的
  • NASA: 美利哥航天局(NASA)多量使用Python举办多少解析和运算
  • YouTube:世界上最大的摄像网站YouTube正是用Python开荒的
  • Dropbox:美利坚联邦合众国最大的在线云存款和储蓄网站,全体用Python落成,天天网址拍卖10亿个文件的上传和下载
  • 推特(Twitter):美利哥最大的图纸分享社交网址,天天超越三千万张照片被分享,全部用python开荒
  • 推特(TWTR.US)(TWTHighlander.US):大批量的基本功库均通过Python完毕的
  • Redhat:
    世界上最风靡的Linux发行版本中的yum包管理工科具正是用python开拓的
  • 豆类: 公司差不多具备的政工均是因此Python开拓的
  • 天涯论坛: 国内最大的问答社区,通过Python开拓(海外Quora)
  • 春雨医务职员:国内老牌的在线医治网址是用Python开拓的
  • 除上面之外,还有搜狐、金山、Tencent、盛大、腾讯网、百度、阿里、天猫、马铃薯、网易、果壳等集团都在采纳Python完毕美妙绝伦的天职。 

Python介绍

文/Bruce.Liu1

Python 是1门怎么的言语?

编程语言首要从以下多少个角度为拓展归类,编写翻译型和平解决释型、静态语言和动态语言、强类型定义语言和弱类型定义语言,每一个分类代表怎样看头吧,大家一并来看一下。

发展史

一.Python前世今生

编写翻译和释疑的分别是怎么样?

编译器是把源程序的每一条语句都编写翻译成机器语言,并保存成2进制文件,那样运营时计算机能够一贯以机器语言来运维此程序,速度火速; 

解释器则是只在施行顺序时,才一条一条的解释成机器语言给计算机来进行,所以运行速度是比不上编写翻译后的程序运维的快的. 

那是因为Computer无法直接认知并实行大家写的言辞,它不得不认知机器语言(是二进制的花样)

金沙注册送58 2

 

 

 

 金沙注册送58 3

 

Python 2 or 3?

1.1.Python历史

Python的创办人: 吉多 van
罗斯尔um;之所以选中Python(大眼镜蛇的意味)作为该编制程序语言的名字,是因为她是三个叫Monty
Python的正剧团体的爱好者。

出生于一九八七年。小编前身也是C++程序员,在此之前也插手统一策动了1种叫ABC的教学语言,就Guido自身看来,ABC
那种语言相当精彩和强有力,是专程为非专门的学问技士设计的。但是ABC语言并未有马到成功,究其原因,吉多感觉是其非开放变成的(相对封闭的支出语言、扩充性、推广性相对不太成功。)。Guido决心在Python 中防止那一谬误。同时,他还想达成在ABC
中闪现过但未曾落成的东西。

图形来源网络

  • 一9九三年,第多少个Python编写翻译器诞生。它是用C语言完结的,并能够调用C语言的库文件。从一落地,Python已经具有了:类,函数,万分管理,蕴涵表和词典在内的骨干数据类型,以及模块为根基的张开系统。
  • Granddaddy of Python web frameworks, Zope 1 was released in 1999
  • Python 1.0 – January 1994 增加了 lambda, map, filter and reduce.
  • Python 二.0 – October 1陆,
    三千,参预了内部存款和储蓄器回收机制,构成了现行反革命Python语言框架的根底
  • Python 二.4 – November 30, 2004, 同年近来最盛行的WEB框架Django 诞生
  • Python 2.5 – September 19, 2006
  • Python 2.6 – October 1, 2008
  • Python 3.0 – December 3, 2008
  • Python 3.1 – June 27, 2009
  • Python 2.7 – July 3, 2010
  • In November 2014, it was announced that Python 2.7 would be
    supported until 2020, and reaffirmed that there would be no 2.8
    release as users were expected to move to Python 3.4+ as soon as
    possible
  • Python 3.2 – February 20, 2011
  • Python 3.3 – September 29, 2012
  • Python 3.4 – March 16, 2014
  • Python 3.5 – September 13, 2015

编译型vs解释型

编译型
亮点:编写翻译器一般会有预编写翻译的历程对代码实行优化。因为编译只做一遍,运转时不需求编写翻译,所以编写翻译型语言的程序执行功能高。能够脱离语言境遇独立运维。
症结:编写翻译之后借使急需修改就供给方方面面模块重新编译。编写翻译的时候依照对应的运维条件生成机器码,不一样的操作系统之间移植就能够有标题,要求依照运维的操作系统意况编写翻译区别的可推行文件。

解释型
亮点:有能够的阳台包容性,在其余条件中都能够运作,前提是安装掌握释器(虚拟机)。灵活,修改代码的时候向来更改就足以,能够便捷布置,不用停机维护。

缺点:每回运行的时候都要解释贰次,质量上不及编写翻译型语言。

 

 

1、低等语言与高级语言

最初的管理器程序都以用0和一的队列表示的,技师直接行使的是机器指令,无需翻译,从纸带打孔输入就可以试行获得结果。后来为了便于回想,就将用0、1队列表示的机器指令都用符号助记,那些与机器指令壹一对应的助记符就成了汇编指令,从而诞生了汇编语言。无论是机器指令依旧汇编指令都以面向机器的,统称为低级语言。因为是本着一定机器的机器指令的助记符,所以汇编语言是心有余而力不足单独于机器(特定的CPU类别布局)的。但汇编语言也是要经过翻译成机器指令工夫实行的,所以也有将运营在壹种机器上的汇编语言翻译成运转在另1种机器上的机器指令的办法,那就是穿插汇编本领。

尖端语言是从人类的逻辑思虑角度出发的微管理器语言,抽象程度大大提升,供给经过编写翻译成特定机器上的对象代码手艺实践,一条高档语言的言辞往往必要多少条机器指令来形成。高档语言独立于机器的特色是靠编译器为不相同机器生成区别的目的代码(或机器指令)来得以达成的。这现实的说,要将高档语言编写翻译到什么程度呢,那又跟编写翻译的手艺有关了,既能够编写翻译成直接可施行的靶子代码,也可以编译成一种中间表示,然后得到不一致的机械和体系上去实施,那种情景普通又要求支持情状,比方解释器或虚拟机的支撑,Java程序编写翻译成bytecode,再由不一致平台上的虚拟机试行正是很好的例证。所以,说高端语言不借助于于机器,是指在差别的机器或平台上高等语言的次第本人不改变,而经过编写翻译器编写翻译得到的靶子代码去适应不相同的机械。从这一个意义上来讲,通过交叉汇编,一些汇编制程序序也得以赢得差别机器之间的可移植性,但那种路径获得的移植性远远不比高等语言来的有利和实用性大。

贰、编写翻译与解释

编写翻译是将源程序翻译成可施行的目标代码,翻译与执行是分其余;而解释是对源程序的翻译与实行二回性达成,不生成可存款和储蓄的目的代码。那只是表象,二者背后的最大分别是:对演说实践来讲,程序运营时的调节权在解释器而不在用户程序;对编写翻译实行来讲,运营时的调节权在用户程序。

分解具备卓绝的动态性格和可移植性,比如在分解施行时得以动态改换变量的类别、对先后开展退换以及在先后中插入出色的调弄整理检查判断音信等,而将解释器移植到区别的种类上,则程序不用退换就足以在移植理解释器的系统上运转。同时解释器也有十分的大的通病,举例实施功用低,占用空间大,因为不但要给用户程序分配空间,解释器本身也侵吞了弥足珍重的系统能源。

编写翻译器是把源程序的每一条语句都编写翻译成机器语言,并保留成贰进制文件,那样运维时Computer能够向来以机器语言来运转此程序,速度高速;
而解释器则是只在实行顺序时,才一条一条的讲明成机器语言给计算机来推行,所以运营速度是不比编写翻译后的程序运维的快的.

* *

编写翻译型和平消除释型
我们先看看编写翻译型,其实它和汇编语言是同1的:也是有3个顶住翻译的顺序来对我们的源代码进行调换,生成相对应的可举行代码。那些历程说得标准一点,就叫做编写翻译(Compile),而担负编写翻译的次序自然就称为编写翻译器(Compiler)。要是大家写的程序代码都包含在多少个源文件中,那么一般编写翻译之后就能一直生成3个可实践文件,大家就能够直接运维了。但对此2个比较复杂的项目,为了方便处理,大家一般把代码分散在相继源文件中,作为差别的模块来公司。那时编写翻译各种文件时就能够变卦目标文件(Object
 
file)而不是目前说的可实施文件。一般贰个源文件的编写翻译都会相应三个对象文件。这一个目的文件里的始末基本暮春经是可实施代码了,但由于只是全体项目的一片段,所以大家还不能够平昔运维。待全部的源文件的编写翻译都马到成功,大家就足以最后把那个半成品的对象文件“打包”成一个可实践文件了,那几个工作由另一个先后担当实现,由于此进度看似是把带有可进行代码的对象文件一而再装配起来,所以又称为链接(Link),而承担链接的程序就叫……就叫链接程序(Linker)。链接程序除了链接目的文件外,大概还有种种能源,像Logo文件啊、声音文件啊什么的,还要承受去除目标文件之间的冗余重复代码,等等,所以……也是挺累的。链接完毕以后,一般就足以拿走大家想要的可实行文件了。 

地点大家大约地介绍了编写翻译型语言的特征,未来再看看解释型。噢,从字面上看,“编写翻译”和“解释”的确都有“翻译”的情致,它们的差异则在于翻译的时机安插比非常的小学一年级样。打个即使:要是你筹算阅读一本外文书,而你不知晓那门外语,那么你能够找一名翻译,给她丰富的时光让他彻彻底底把整本书翻译好,然后把书的母语版交给你读书;或然,你也当即让那名翻译帮助你读书,让她一句一句给您翻译,假使您想往回放有些章节,他也得重新给你翻译。 

二种方法,前者就也就是大家刚刚所说的编译型:一次把富有的代码调换到机器语言,然后写成可实施文件;而后人就也就是我们要说的解释型:在程序运维的前一刻,还唯有源程序而从不可推行程序;而先后每实践到源程序的某一条指令,则会有三个称作解释程序的外壳程序将源代码调换来二进制代码以供试行,总言之,正是无休止地批注、实施、解释、实施……所以,解释型程序是离不开解释程序的。像早期的BASIC正是壹门优秀的解释型语言,要试行BASIC程序,就得进去BASIC处境,然后才能加载程序源文件、运营。解释型程序中,由于程序连接以源代码的款型现身,由此只要有对应的解释器,移植差不离不是难点。编写翻译型程序即使源代码也能够移植,但前提是必须针对分裂的种类分别展开编写翻译,对于复杂的工程以来,的确是1件十分大的时刻消耗,况且很或许有个别细节的地点可能要修改源代码。而且,解释型程序省却了编写翻译的手续,修改调节和测试也格外有益,编辑完结之后就能够及时运营,不必像编写翻译型程序同样每趟举行小小的改造都要耐心等待漫长的Compiling…Linking…这样的编写翻译链接进度。不过总体有利有弊,由于解释型程序是将编写翻译的进程置于试行进度中,那就调节精通释型程序决定要比编写翻译型慢上一大截,像几百倍的速度差异也是欠缺为奇的。 

编写翻译型与解释型,两者各有利弊。前者由于程序施行速度快,同等条件下对系统须求比较低,因而像开采操作系统、大型应用程序、数据库系统等时都施用它,像C/C++、帕斯Carl/Object
 
帕斯Carl(Delphi)、VB等骨干都可说是编写翻译语言,而部分网页脚本、服务器脚本及扶助开荒接口那样的对进度供给不高、对不相同系统平台间的兼容性有早晚须要的顺序则经常使用解释性语言,如Java、JavaScript、VBScript、Perl、Python等等。 

但既然编写翻译型与解释型各有优缺点又互为周旋,所以一堆新兴的言语都有把两岸折衷起来的来头,比如Java语言固然相比较像样解释型语言的特征,但在实行以前已经先期实行叁遍预编写翻译,生成的代码是在乎机器码和Java源代码之间的中介代码,运营的时候则由JVM(Java的虚拟机平台,可身为解释器)解释实行。它既保存了源代码的高抽象、可移植的性状,又壹度做到了对源代码的大部预编写翻译职业,所以进行起来比“纯解释型”程序要快好多。而像VB陆(可能从前版本)、C#诸如此类的语言,固然表面上看变化的是.exe可实行程序文件,但VB陆编译之后实际变化的也是1种中介码,只可是编译器在前边布置了1段机关调用有个别外部解释器的代码(该解释程序独立于用户编写的顺序,存放于系统的某部DLL文件中,全部以VB陆编写翻译生成的可施行程序都要用到它),以表明施行实际的程序体。C#(以及别的.net的言语编写翻译器)则是生成.net目标代码,实际奉行时则由.net解释系统(就像JVM同样,也是八个虚拟机平台)进行施行。当然.net目的代码已经十分“低端”,比较周围机器语言了,所以仍将其身为编译语言,而且其可移植程度也并未有Java号称的如此庞大,Java号称是“三次编译,随处执行”,而.net则是“1回编码,四处编写翻译”。呵呵,当然这一个都以题外话了。同理可得,随着布置才干与硬件的无休止升华,编译型与解释型二种办法的尽头正在不停变得模糊。

动态语言和静态语言
普通我们所说的动态语言、静态语言是指动态类型语言和静态类型语言。

(1)动态类型语言:动态类型语言是指在运作时期才去做数据类型检查的语言,相当于说,在用动态类型的语言编制程序时,恒久也不用给任何变量钦点数据类型,该语言会在你首先次赋值给变量时,在中间将数据类型记录下来。Python和Ruby正是一种规范的动态类型语言,别的的各类脚本语言如VBScript也不怎么属于动态类型语言。

(二)静态类型语言:静态类型语言与动态类型语言恰恰相反,它的数据类型是在编写翻译其间检查的,也正是说在写程序时要注解全部变量的数据类型,C/C++是静态类型语言的独占鳌头代表,别的的静态类型语言还有C#、JAVA等。

* *

强类型定义语言和弱类型定义语言

(壹)强类型定义语言:强制数据类型定义的言语。也正是说,一旦二个变量被钦赐了有个别数据类型,假诺不通过强制转变,那么它就永世是其一数据类型了。比方:假设你定义了多少个整型变量a,那么程序根本不大概将a当作字符串类型管理。强类型定义语言是体系安全的语言。

(贰)弱类型定义语言:数据类型能够被忽视的言语。它与强类型定义语言相反,
三个变量能够赋差别数据类型的值。

强类型定义语言在速度上只怕略逊色于弱类型定义语言,不过强类型定义语言带来的严峻性能够使得的幸免过多荒谬。其余,“那门语言是否动态语言”与“那门语言是或不是类型安全”之间是全然未有关联的!
譬如说:Python是动态语言,是强类型定义语言(类型安全的语言);
VBScript是动态语言,是弱类型定义语言(类型不安全的言语);
JAVA是静态语言,是强类型定义语言(类型安全的语言)。

* *

因而地点这个介绍,大家得以汲取,python是1门动态解释性的强类型定义语言。那那一个基因使成就了Python的什么样优缺点呢?大家一连往下看。

 

安装

1.2.火爆排行

风行的TIOBE排行榜,Python赶上并超过PHP攻克第5。

图表来源网络

由上海教室可知,Python全部呈上涨趋势,反映出Python应用越来越普及并且也慢慢获得正式的认可!

图形来自网络

IEEE Spectrum (电气和电子技术员协会) 2017 编制程序语言 Top 拾
http://spectrum.ieee.org/static/interactive-the-top-programming-languages-2017

  • Python 的排行从上一季度开头就在持续上涨,并跃至第一。但排在前四名的言语
    Python、C、Java 和 C++ ,其实都维持着越发接近的流行度。

图形来自网络

Python的利弊

先看亮点

  1. Python的原则性是“优雅”、“显著”、“简单”,所以Python程序看上去总是轻巧易懂,初学者学Python,不但入门轻松,而且现在深远下去,能够编写那一个可怜格外复杂的主次。
  2. 支出效用极高,Python有更强劲的第贰方库,基本上你想透过Computer落成任何意义,Python官方Curry都有相应的模块实行支撑,直接下载调用后,在基础库的底子上再张开开荒,大大降低开辟周期,幸免双重造轮子。
  3. 尖端语言————当您用Python语言编写程序的时候,你没有要求考虑诸如怎么着管理你的顺序接纳的内部存款和储蓄器1类的最底层细节
  4. 可移植性————由于它的开源本质,Python已经被移植在重重九台上(经过改变使它能够工作在差异平台上)。倘若您小心地幸免使用正视于系统的特征,那么您的持有Python程序无需修改就大致能够在商海上有所的类别平台上运转
  5. 可扩展性————假如你要求你的1段着重代码运转得更加快还是希望某个算法不公开,你能够把你的有个别程序用C或C++编写,然后在您的Python程序中利用它们。
  6. 可嵌入性————你能够把Python嵌入你的C/C++程序,从而向你的主次用户提供脚本成效。

再看缺点:

  1. 进程慢,Python
    的运作速度相比较C语言确实慢繁多,跟JAVA比较也要慢一些,因而那也是多多益善所谓的大咖不屑于使用Python的首要原因,但实际上这里所指的运转速度慢在大多数意况下用户是力不从心直接感知到的,必须依赖测试工具手艺反映出来,比方您用C运二个程序花了0.01s,用Python是0.壹s,那样C语言直接比Python快了10倍,算是那多少个夸张了,可是你是不或许直接通过肉眼感知的,因为一个正常人所能感知的时间相当的小单位是0.一5-0.四s左右,哈哈。其实在超越二分一情形下Python已经完全能够满足你对程序速度的渴求,除非您要写对进程供给相当高的搜寻引擎等,那种景况下,当然依然提出您用C去贯彻的。
  2. 代码不能够加密,因为PYTHON是解释性语言,它的源码都是以名文方式存放的,不过本身不认为那算是三个瑕疵,假若你的品种须要源代码必须是加密的,那您一最先就不该用Python来去得以完毕。
  3. 线程不能够选用多CPU难题,那是Python被人诟病最多的2个瑕疵,GIL即全局解释器锁(Global
    Interpreter
    Lock),是微型Computer程序设计语言解释器用于同步线程的工具,使得任哪一天刻仅有三个线程在试行,Python的线程是操作系统的原生线程。在Linux上为pthread,在Windows上为Win
    thread,完全由操作系统调治线程的实施。三个python解释器进度内有一条主线程,以及多条用户程序的实践线程。即便在多核CPU平台上,由于GIL的留存,所以禁止10二线程的并行施行。关于那么些标题标低头解决措施,我们在之后线程和经过章节里再拓展详尽研究。

 

当然,Python还有一些别的的小缺点,在那就不11列举了,小编想说的是,任何壹门语言都不是宏观的,都有擅长和不擅长做的作业,提出各位不用拿三个语言的劣势去跟另贰个言语的优势来去相比较,语言只是多少个工具,是落成程序设计员观念的工具,就像是我们后边中学学几几时,有的时候须要要圆规,有的时候供给用三角尺同样,拿相应的工具去做它最擅长的事才是天经地义的选项。以前很四人问我Shell和Python到底哪些好?笔者回答说Shell是个脚本语言,但Python不只是个脚本语言,能做的事情更加多,然后又有钻牛角尖的人说完全没有须要学Python,
Python能做的政工Shell都能够做,只要您丰裕牛B,然后又举了用Shell能够写俄罗丝方块那样的玩耍,对此笔者能说表明只可以是,不要跟SB理论,SB会把您拉到跟他1致的莫斯科大学,然后用丰盛的阅历把你打倒。

 

 

Hello World程序

一.3.Python应用领域

  • ###### 云计算

云总括最火的语言, 标准应用OpenStack

  • ###### WEB开发

python相比php\ruby的模块化设计,卓殊便宜功用扩张;多年来产生了汪洋奇妙的web开辟框架,并且在不断迭代;如近年来杰出的全栈的django、框架flask,都一连了python轻巧、鲜明的品格,开拓效能高、易维护,与自动化运行结合性好,python已经化为自动化运营平台领域的事实标准;众多大型网址均为Python开荒,Youtube,
Dropbox, 豆瓣。

  • ###### 人工智能

依据大额解析和深度学习而上扬出来的人造智能本质樱笋时经无力回天离开python的援救,近年来世界卓绝的人为智能学习框架如谷歌的TransorFlow
、FaceBook的PyTorch以及开源社区的神经互连网库Karas等是用python达成的,以至微软的CNTK(认识工具包)也统统支持Python,而且微软的Vscode都已经把Python作为第顶级语言进行支撑。

  • ###### 系统运行

Python在与操作系统结合以及处理中格外密切,目前颇具linux发行版中都涵盖python,且对于linux中相关的管住职能都有大量的模块能够行使,举个例子目前主流的自动化配置处理工科具:SaltStack
Ansible(近来是RedHat的)。近日在大概全体网络集团,自动化运维的标配正是python+Django/flask,别的,在虚拟化管理方面已经是事实标准的openstack正是python完毕的,所以Python是兼备运营职员的必不可缺技艺。

  • ###### 金融

量化交易,金融分析,在经济工程领域,Python不但在用,且用的最多,而且根本日益增进。原因:作为动态语言的Python,语言结构清晰轻便,库丰富,成熟牢固,科学计算和总括分析都很牛逼,生产效用远远高于c,c++,java,越发擅长攻略回测

  • ###### 大数据

Python相对于别的解释性语言最大的特点是其强大而活泼的科学总括生态,在数据解析、交互、可视化方面有相当周密和非凡的库(python数据解析栈:Numpy
Pandas Scipy Matplotlip Ipython),
并且还造成了和煦独特的面向科学总计的Python发行版Anaconda,而且这几年向来在飞Spirior飞和健全,对价值观的数量解析语言如SportageMATLAB SAS Stata产生了老大强的替代性。

  • ###### 图形GUI

PyQT, WxPython,TkInter

Python解释器

当大家编辑Python代码时,大家获取的是三个饱含Python代码的以.py为扩展名的文书文件。要运营代码,就须要Python解释器去实施.py文件。

出于1切Python语言从正式到解释器都是开源的,所以理论上,只要水平够高,任哪个人都足以编写Python解释器来实践Python代码(当然难度十分的大)。事实上,确实存在两种Python解释器。

变量

1.肆.Python行当应用

  • CIA:花旗国中情局网址正是用Python开拓的
  • NASA:美利坚合资国航天局(NASA)一九玖一年起把python作为重要支出语言(使用Python举办多少解析和平运动算)
  • 谷歌(Google):谷歌(Google) App Engine 、code.google.com 、谷歌 earth
    、谷歌爬虫、谷歌(Google)广告等类型都在多量选用Python开荒
  • 照片墙:多量的底蕴库均经过Python实现的
  • YouTube:世界上最大的录制网址YouTube便是用Python开采的
  • Dropbox:美利坚合资国最大的在线云存款和储蓄网址,全体用Python达成,每一天网址拍卖10亿个文本的上传和下载
  • Twitter:U.S.最大的图片分享社交网址,天天当先三千万张相片被分享,全体用python开垦
  • Redhat:世界上最流行的Linux发行版本中的yum包管理工科具就是用python开垦的
  • 豆瓣:集团大致具有的政工均是由此Python开采的
  • 果壳网:国内最大的问答社区,通过Python开荒(海外Quora)

CPython

当我们从Python官网下载并设置好Python
2.7后,大家就直接获得了二个法定版本的解释器:CPython。这几个解释器是用C语言开拓的,所以叫CPython。在指令行下运转python正是开发银行CPython解释器。

CPython是利用最广的Python解释器。教程的富有代码也都在CPython下施行。

用户输入

二.编制程序语言简单介绍和特点

编制程序语言首要从以下几个角度为开始展览分拣,编译型和平消除释型、静态语言和动态语言、强类型定义语言和弱类型定义语言,每一种分类代表怎么着看头呢,大家1块来看一下。

IPython

IPython是基于CPython之上的贰个交互式解释器,也正是说,IPython只是在交互方式上有着提升,不过实施Python代码的法力和CPython是完全一样的。好比繁多进口浏览器即便外观分裂,但根本其实都以调用了IE。

CPython用>>>用作提示符,而IPython用In [``序号``]:用作提示符。

模块初识

2.一.编译和平消除释型语言的分歧

CPU不能够一贯认知并奉行大家写的言语,它只好认知机器语言(CPU指令集;二进制的格局);由此大家开垦语言的Virtual
Machine要将识别的开支语言调换来机器语言让CPU去实行;那么就有三种以下三种办法:

  • 编写翻译器是把源程序的每一条语句都编写翻译成机器语言,并保存成2进制文件,那样运维时计算机可以一直以机器语言来运营此程序,速度快速;

  • 解释器则是只在实施顺序时,才一条一条的解释成机器语言给Computer来进行,所以运营速度是不及编写翻译后的程序运维的快的.

编译型 解释型 混合型
C Java Script Java
C++ Python C#
GO Ruby N/A
Swift PHP N/A
Ojbect-C Perl N/A

PyPy

PyPy是另一个Python解释器,它的目的是实践进程。PyPy接纳JIT技术,对Python代码进行动态编写翻译(注意不是分解),所以能够一览掌握增进Python代码的实行进程。

多方Python代码都得以在PyPy下运营,可是PyPy和CPython有部分是不一致的,这就导致一样的Python代码在三种解释器下实施可能会有两样的结果。假诺您的代码要放权PyPy下进行,就须要通晓PyPy和CPython的差异点。

.pyc是个怎么样鬼?

二.2.编写翻译和平消除释型优缺点

Jython

Jython是运维在Java平台上的Python解释器,能够一向把Python代码编写翻译成Java字节码实行。

数据类型初识

编译型
  • 优点:编写翻译器一般会有预编写翻译的进程对代码举办优化。因为编译只做一遍,运维时无需编译,所以编写翻译型语言的程序实行功用高。能够退出语言遭遇独立运行。
  • 症结:编写翻译之后就算要求修改就须要任何模块重新编译。编译的时候依照对应的运作遭遇生成机器码,差别的操作系统之间移植就能够有毛病,须要根据运维的操作系统境遇编写翻译差别的可施行文件。

IronPython

IronPython和Jython类似,只不过IronPython是运维在微软.Net平台上的Python解释器,能够平昔把Python代码编写翻译成.Net的字节码。

数据运算

解释型
  • 优点:有优秀的平台包容性,在任何情形中都能够运营,前提是设置精晓释器(虚拟机)。灵活,修改代码的时候一向修改就能够,能够赶快安顿,不用停机维护。
  • 缺陷:每回运转的时候都要讲授1遍,质量上不比编写翻译型语言。

小结

Python的解释器许多,但使用最布满的依然CPython。假设要和Java或.Net平台互相,最佳的主意不是用Jython或IronPython,而是通过互连网调用来交互,确认保证各程序之间的独立性。

 

表达式if …else语句

2.三.静态和动态语言

一般性我们所说的动态语言、静态语言是指动态类型语言和静态类型语言。

  • ###### 动态类型语言:

动态类型语言是指在运行时期才去做数据类型检查的语言,也正是说,在用动态类型的语言编制程序时,恒久也不用给任何变量钦点数据类型,该语言会在你首先次赋值给变量时,在里头将数据类型记录下来。Python和Ruby便是一种标准的动态类型语言,其余的种种脚本语言如VBScript也有些属于动态类型语言。

  • ###### 静态类型语言:

静态类型语言与动态类型语言恰恰相反,它的数据类型是在编写翻译其间检查的,也正是说在写程序时要注脚全部变量的数据类型,C/C++是静态类型语言的卓越代表,其余的静态类型语言还有C#、JAVA等。

二、Python发展史 

  • 198八年,为了打发圣诞节休假,Guido开首写Python语言的编写翻译器。Python这一个名字,来自吉多所挚爱的TV剧Monty
    Python’s Flying
    Circus。他期待以此新的称呼Python的语言,能适合她的优质:成立一种C和shell之间,功效周全,命理术数易用,可进行的语言。
  • 壹九九伍年,第壹个Python编写翻译器诞生。它是用C语言完毕的,并能够调用C语言的库文件。从一诞生,Python已经颇具了:类,函数,相当管理,包蕴表和词典在内的主导数据类型,以及模块为根基的举办系统。
  • Granddaddy of Python web frameworks, Zope 1 was released in 1999
  • Python 1.0 – January 1994
    增加了 lambda, map), filter) and reduce).
  • Python 贰.0 – October 16,
    贰仟,参预了内部存款和储蓄器回收机制,构成了当今Python语言框架的基础
  • Python 2.4 – November 30, 200四, 同年近年来最风靡的WEB框架Django 诞生
  • Python 2.5 – September 19, 2006
  • Python 2.6 – October 1, 2008
  • Python 2.7 – July 3, 2010
  • In November 2014, it was announced that Python 2.7 would be
    supported until 2020, and reaffirmed that there would be no 2.8
    release as users were expected to move to Python 3.4+ as soon as
    possible
  • Python 3.0 – December 3, 2008
  • Python 3.1 – June 27, 2009
  • Python 3.2 – February 20, 2011
  • Python 3.3 – September 29, 2012
  • Python 3.4 – March 16, 2014
  • Python 3.5 – September 13, 2015

表达式for 循环

二.4.强品种和弱类型定义语言

强类型定义语言在速度上也许略逊色于弱类型定义语言,可是强类型定义语言带来的严俊质量够有效的制止过多荒谬。此外,“那门语言是否动态语言”与“那门语言是或不是类型安全”之间是完全未有关联的!

例如:

  • Python是动态语言,是强类型定义语言(类型安全的言语);
    VBScript是动态语言,是弱类型定义语言(类型不安全的语言);

  • JAVA是静态语言,是强类型定义语言(类型安全的语言)。

  • ###### 强类型定义语言:

强制数据类型定义的语言。也便是说,壹旦1个变量被钦赐了有个别数据类型,假诺不通过强制调换,那么它就永久是其一数据类型了。比方:如果您定义了八个整型变量a,那么程序根本不容许将a当作字符串类型处理。强类型定义语言是项目安全的言语。

  • ###### 弱类型定义语言:

数据类型能够被忽略的言语。它与强类型定义语言相反,
叁个变量能够赋分化数据类型的值。

经过地点那几个介绍,大家得以得出,python是一门动态解释性的强类型定义语言。

三、Python 2 or 3?

In summary : Python 2.x is legacy, Python 3.x is the present and
future of the language

Python简单介绍和入门。Python 3.0 was released in 2008. The final 2.x version 2.7 release came
out in mid-2010, with a statement of

extended support for this end-of-life release. The 2.x branch will see
no new major releases after that. 3.x is

under active development and has already seen over five years of stable
releases, including version 3.3 in 2012,

3.4 in 2014, and 3.5 in 2015. This means that all recent standard
library improvements, for example, are only

available by default in Python 3.x.

Guido van Rossum (the original creator of the Python language) decided
to clean up Python 2.x properly, with less regard for backwards
compatibility than is the case for new releases in the 2.x range. The
most drastic improvement is the better Unicode support (with all text
strings being Unicode by default) as well as saner bytes/Unicode
separation.

Besides, several aspects of the core language (such as print and exec
being statements, integers using floor division) have been adjusted to
be easier for newcomers to learn and to be more consistent with the rest
of the language, and old cruft has been removed (for example, all
classes are now new-style, “range()” returns a memory efficient
iterable, not a list as in 2.x). 

break and continue

3.What is Python?

py2与三的详尽差异

PRINT IS A FUNCTION

The statement has been replaced with a print() function, with keyword
arguments to replace most of the special syntax of the old statement
(PEP 3105). Examples: 

Old: print "The answer is", 2*2 New: print("The answer is", 2*2)
Old: print x, # Trailing comma suppresses newline New: print(x, end=" ") # Appends a space instead of a newline
Old: print # Prints a newline
New: print() # You must call the function!
Old: print >>sys.stderr, "fatal error" New: print("fatal error", file=sys.stderr)
Old: print (x, y) # prints repr((x, y))
New: print((x, y)) # Not the same as print(x, y)!

You can also customize the separator between items, e.g.: 

print("There are <", 2**32, "> possibilities!", sep="")

ALL IS UNICODE NOW

从此今后不再为厌恶的字符编码而极慢

 

还足以那样玩: (A,*REST,B)=RANGE(5)

>>> a,*rest,b = range(5)
>>> a,rest,b
(0, [1, 2, 3], 4)

  

有个别库改名了

 

Old Name

New Name

_winreg

winreg

ConfigParser

configparser

copy_reg

copyreg

Queue

queue

SocketServer

socketserver

markupbase

_markupbase

repr

reprlib

test.test_support

test.support

  

再有哪个人不帮助PYTHON三?

One popular module that don’t yet support Python 3 is Twisted (for
networking and other applications). Most

actively maintained libraries have people working on 3.x support. For
some libraries, it’s more of a priority than

others: Twisted, for example, is mostly focused on production servers,
where supporting older versions of

Python is important, let alone supporting a new version that includes
major changes to the language. (Twisted is

a prime example of a major package where porting to 3.x is far from
trivial 

 

表达式while 循环

3.1.Python哲学

Python开荒者的文学是“用一种格局,最棒是唯有一种格局来做一件事”。在陈设Python语言时,假若面临多样精选,Python开辟者一般会拒绝花俏的语法,而挑选明显未有只怕很少有歧义的语法。那么些轨道被称为“Python格言”。在Python解释器内运维import
this能够获取完全的列表。

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.
......  ......
  • ###### 优雅

语法卓殊的大概干练,未有一点盈余的语法结构。

  • ###### 明确

python对格式进行强制的限定;将格式有条理,就认为在写诗同样优雅美貌;

  • ###### 简单

在python的安顿性军事学中:要落成其余壹件业务,都应有有一种并且大家感觉是最佳的1种艺术去落成。未有像Perl语言那样花哨,(魔英语言),大约便是不去调解,你不知道那段代码的逻辑。(大致四个Perl开拓,写出贰个效益,就有5种写法出来。不方便人民群众团队同盟)

四、Python安装

学业须要

3.2.Python优缺点

windows

1、下载安装包
    https://www.python.org/downloads/
2、安装
    默认安装路径:C:\python27
3、配置环境变量
    【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【Python安装目录追加到变值值中,用 ; 分割】
    如:原来的值;C:\python27,切记前面有分号

linux、Mac

无需安装,原装Python环境

ps:如果自带2.6,请更新至2.7

  

一、 Python介绍

优点
  • 简短命理易学

专门适合初大方学Python,不但入门轻巧,而且未来深切下去,能够编写制定那个可怜非凡复杂的程序。

  • 付出效用高

Python有尤其有力的第二方库,基本上你想通过计算机落成任何功能,Python官方Curry都有照应的模块举办支撑,直接下载调用后,在基础库的基本功上再张开销付,大大下降开垦周期,幸免双重造轮子。

  • 高等语言

当你用Python语言编写程序的时候,你无需思量诸如哪些管理你的程序行使的内存壹类的最底层细节

  • 可移植性

由于它的开源本质,Python已经被移植在大多平台上(经过退换使它能够工作在不一样平台上)。若是您小心地防止使用正视于系统的特性,那么您的保有Python程序无需修改就差了一点能够在商海上全部的系统平台上运转

  • 可扩大性

假使您需求您的1段入眼代码运维得越来越快或许希望有些算法不精晓,你能够把您的局地程序用C或C++编写,然后在你的Python程序中央银行使它们。

  • 可嵌入性

您能够把Python嵌入你的C/C++程序,从而向你的次序用户提供脚本效用。

五、Hello World程序

在linux 下开创叁个文件叫hello.py,并输入

print("Hello World!")

然后实施命令:python hello.py ,输出

localhost:~ jieli$ vim hello.py 
localhost:~ jieli$ python hello.py 
Hello World!

钦定解释器

上一步中推行 python hello.py 时,分明的提议 hello.py 脚本由 python
解释器来施行。

借使想要类似于试行shell脚本一样进行python脚本,例: ./hello.py,那么就供给在
hello.py 文件的底部钦定解释器,如下:

#!/usr/bin/env python

print "hello,world"

如此1来,推行: ./hello.py 即可。

ps:实行前需给予 hello.py 实施权限,chmod 755 hello.py

在交互器中施行 

除却把程序写在文件里,还足以一向调用python自带的交互器运转代码, 

localhost:~ jieli$ python 
Python 2.7.10 (default, Oct 23 2015, 18:05:06) 
[GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.59.5)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> print("Hello World!")
Hello World!

相比较之下下其余语言的hello world

金沙注册送58 4金沙注册送58 5

1 #include <iostream>
2 int main(void)
3 {
4 std::cout<<"Hello world";
5 }

c++

金沙注册送58 6金沙注册送58 7

1 #include <stdio.h>
2 int main(void)
3 {
4 printf("\nhello world!");
5 return 0;
6 }

c

金沙注册送58 8金沙注册送58 9

1 <?php  
2             echo "hello world!";  
3 ?> 

PHP

金沙注册送58 10金沙注册送58 11

puts "Hello world."  

RUBY

金沙注册送58 12金沙注册送58 13

1 public class HelloWorld{
2   // 程序的入口
3   public static void main(String args[]){
4     // 向控制台输出信息
5     System.out.println("Hello World!");
6   }
7 }

JAVA

金沙注册送58 14金沙注册送58 15

1 package main
2 
3 import "fmt"
4 
5 func main(){
6 
7     fmt.Printf("Hello World!\n God Bless You!");
8 
9 }

GO

 

 

python的创办者为吉多·范罗苏姆(吉多 van
罗斯尔um)。1990年的圣诞节以内,吉多·范罗苏姆为了在伊Stan布尔打发时间,决心开垦1个新的台本解释程序,作为ABC语言的一种持续。

缺点
  • 速度慢

Python
的周转速度比较C语言确实慢多数,跟JAVA相比也要慢一些,因而那也是数不胜数所谓的大咖不屑于使用Python的根本原因,但实在这里所指的运作速度慢在大部情景下用户是力不从心直接感知到的,必须借助测试工具才能显示出来,比方您用C运三个顺序花了0.0一s,用Python是0.一s,那样C语言直接比Python快了10倍,算是那3个夸张了,但是你是力不从心直接通过肉眼感知的,因为二个普普通通的人所能感知的时间非常小单位是0.一五-0.四s左右,哈哈。其实在大部状态下Python已经完全能够满足你对程序速度的要求,除非您要写对进度供给相当高的物色引擎等,那种气象下,当然还是建议您用C去贯彻的。

  • 代码不能够加密

因为PYTHON是解释性语言,它的源码都以以名文方式存放的,可是小编不认为那到底二个缺陷,假如你的类别要求源代码必须是加密的,那您一开端就不应该用Python来去得以落成。

  • 四线程难题

那是Python被人指斥最多的八个通病,GIL即全局解释器锁(Global Interpreter
Lock),是计算机程序设计语言解释器用于共同线程的工具,使得任哪天刻仅有二个线程在施行,Python的线程是操作系统的原生线程。在Linux上为pthread,在Windows上为Win
thread,完全由操作系统调节线程的施行。二个python解释器进度内有一条主线程,以及多条用户程序的实行线程。固然在多核CPU平台上,由于GIL的存在,所以禁止二十四线程的并行实施。

六、变量\字符编码 

Variables are used to store information to be referenced and
manipulated in a computer program. They also provide a way of labeling
data with a descriptive name, so our programs can be understood more
clearly by the reader and ourselves. It is helpful to think of variables
as containers that hold information. Their sole purpose is to label and
store data in memory. This data can then be used throughout your
program.

宣示变量

#_*_coding:utf-8_*_

name = "Alex Li"

上述代码证明了2个变量,变量名称为: name,变量name的值为:”Alex Li” 

变量定义的条条框框:

  • 变量名只好是 字母、数字或下划线的自由组合
  • 变量名的首先个字符不能够是数字
  • 以下尊崇字不能够声称为变量名
    [‘and’, ‘as’, ‘assert’, ‘break’, ‘class’, ‘continue’, ‘def’, ‘del’,
    ‘elif’, ‘else’, ‘except’, ‘exec’, ‘finally’, ‘for’, ‘from’,
    ‘global’, ‘if’, ‘import’, ‘in’, ‘is’, ‘lambda’, ‘not’, ‘or’, ‘pass’,
    ‘print’, ‘raise’, ‘return’, ‘try’, ‘while’, ‘with’, ‘yield’]

变量的赋值

name = "Alex Li"

name2 = name 
print(name,name2)

name = "Jack"

print("What is the value of name2 now?")

 

最新的TIOBE排名榜,Python赶超PHP攻克第四, Python崇尚精粹、清晰、简单,是一个精美并广泛应用的言语。

3.3.Python解释器

当大家编辑Python代码时,大家收获的是一个含有Python代码的以.py为扩张名的文本文件。要运维代码,就须要Python解释器去实践.py文件。
是因为整个Python语言从行业内部到解释器都以开源的,所以理论上,只要水平够高,任何人都得以编写制定Python解释器来试行Python代码(当然难度非常大)。事实上,确实存在多样Python解释器。

  • CPython

当大家从Python官方网站下载并安装好Python
二.7后,大家就向来获得了1个合法版本的解释器:CPython。那个解释器是用C语言开辟的,所以叫CPython。在命令行下运营python就是运行CPython解释器。
CPython是采纳最广的Python解释器。教程的具备代码也都在CPython下进行。

  • IPython

IPython是依附CPython之上的两个交互式解释器,也便是说,IPython只是在交互形式上有着压实,不过进行Python代码的效率和CPython是完全一样的。好比诸多国产浏览器就算外观差异,但基础其实都以调用了IE。
CPython用>>>作为提示符,而IPython用In [序号]:作为提醒符。

  • PyPy

PyPy是另二个Python解释器,它的靶子是奉行进程。PyPy选取JIT技术,对Python代码进行动态编写翻译(注意不是解释),所以能够了然于目压实Python代码的奉行进程。
多头Python代码都足以在PyPy下运营,不过PyPy和CPython有部分是见仁见智的,这就招致同样的Python代码在三种解释器下实施大概会有例外的结果。假若您的代码要放到PyPy下实行,就须要通晓PyPy和CPython的分歧点。

  • Jython

Jython是运作在Java平台上的Python解释器,能够一贯把Python代码编写翻译成Java字节码施行。

  • IronPython

IronPython和Jython类似,只然而IronPython是运转在微软.Net平台上的Python解释器,能够直接把Python代码编写翻译成.Net的字节码。

7、字符编码

python解释器在加载 .py 文件中的代码时,会对剧情打开编码(默许ascill)

ASCII(American Standard Code for Information
Interchange,美利坚合营国正规音信置换代码)是凭仗拉丁字母的1套计算机编码系统,重要用以展示今世罗马尼亚(罗曼ia)语和别的西欧语言,其最七只好用
8 位来代表(三个字节),即:2**8 = 25⑥-一,所以,ASCII码最七只可以表示
255 个暗记。

 

金沙注册送58 16

有关中文

为了管理汉字,程序猿设计了用来简体汉语的GB231贰和用于繁体普通话的big5。

GB2312(一九7陆年)一共收音和录音了74四多少个字符,包涵6763个汉字和6八2个别的符号。汉字区的内码范围高字节从B0-F7,低字节从A一-FE,占用的码位是7二*玖肆=676八。个中有七个空位是D7FA-D柒FE。

GB231二支持的汉字太少。1995年的汉字增添标准GBK1.0引用了218捌四个标记,它分为汉字区和图表符号区。汉字区包括二100三个字符。贰仟年的
GB18030是顶替GBK1.0的标准国标。该标准收录了2748陆个汉字,同时还引用了藏文、蒙文、维吾尔文等要害的少数民族文字。未来的PC平台必须帮忙GB18030,对嵌入式产品暂不作供给。所以手提式有线电话机、mp4一般只援救GB231二。

从ASCII、GB231二、GBK
到GB18030,那几个编码方法是向下包容的,即同3个字符在这几个方案中连连有雷同的编码,后边的正儿八经帮忙更加多的字符。在那几个编码中,英文和国语能够统一地管理。区分汉语编码的格局是高字节的最高位不为0。依照工程师的称呼,GB231贰、GBK到GB18030都属于双字节字符集
(DBCS)。

有的中文Windows的缺本省码照旧GBK,能够因此GB18030晋级包晋级到GB18030。可是GB18030相对GBK扩张的字符,一般人是很难用到的,经常大家如故用GBK指代普通话Windows内码。

 

 

断定ASCII码不能够将世界上的各样文字和标志全体意味着,所以,就必要新出1种能够表示全部字符和符号的编码,即:Unicode

Unicode(统1码、万国码、单一码)是1种在微型Computer上行使的字符编码。Unicode
是为了消除古板的字符编码方案的局限而发出的,它为种种语言中的每一种字符设定了合并并且唯1的二进制编码,规定虽有的字符和标志最少由
1陆 位来代表(3个字节),即:二 **16 = 65536,
注:此处说的的是最少三个字节,恐怕愈多

UTF-八,是对Unicode编码的压缩和优化,他不再接纳最少使用3个字节,而是将富有的字符和标志进行分拣:ascii码中的内容用3个字节保存、北美洲的字符用2个字节保存,南亚的字符用3个字节保存…

就此,python解释器在加载 .py
文件中的代码时,会对剧情开展编码(暗中同意ascill),要是是之类代码的话:

报错:ascii码不大概代表汉语

#!/usr/bin/env python

print "你好,世界" 

改良:应该显得的告知python解释器,用什么样编码来举办源代码,即:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

print "你好,世界"

金沙注册送58 17

4.Python2 or 3?

What are the differences?
In summary : Python 2.x is legacy, Python 3.x is the present and
future of the language
https://wiki.python.org/moin/Python2orPython3

Python 3.0 was released in 2008. The final 2.x version 2.7 release came
out in mid-2010, with a statement of extended support for this
end-of-life release. The 2.x branch will see no new major releases after
that. 3.x is under active development and has already seen over five
years of stable releases, including version 3.3 in 2012, 3.4 in 2014,
3.5 in 2015, and 3.6 in 2016. This means that all recent standard
library improvements, for example, are only available by default in
Python 3.x.

Guido van Rossum (the original creator of the Python language) decided
to clean up Python 2.x properly, with less regard for backwards
compatibility than is the case for new releases in the 2.x range. The
most drastic improvement is the better Unicode support (with all text
strings being Unicode by default) as well as saner bytes/Unicode
separation.

Besides, several aspects of the core language (such as print and exec
being statements, integers using floor division) have been adjusted to
be easier for newcomers to learn and to be more consistent with the rest
of the language, and old cruft has been removed (for example, all
classes are now new-style, “range()” returns a memory efficient
iterable, not a list as in 2.x).

注释

  当行注视:# 被讲授内容

  多行注释:””” 被解说内容 “””

  

  

 

由上航海用教室可知,Python全部呈回升趋势,反映出Python应用越来越普及并且也稳步获得专门的学问的确认!!!

4.1.性能

Py三.0运维 pystone
benchmark的进程比Py二.五慢3/10。吉多认Py3.0有高大的优化空间,在字符串和整形操作上得以拿走很好的优化结果。

  • Py三.一质量比Py二.伍慢壹伍%,还有比相当大的晋升空间。
  • 方今Py三.x已经比Py贰.x运作速度要快多数了。

八、用户输入 

#!/usr/bin/env python 
#_*_coding:utf-8_*_


#name = raw_input("What is your name?") #only on python 2.x
name = input("What is your name?")
print("Hello " + name )

输入密码时,即使想要不可知,供给动用getpass 模块中的 getpass方法,即:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import getpass

# 将用户输入的内容赋值给 name 变量
pwd = getpass.getpass("请输入密码:")

# 打印输入的内容
print(pwd)

 

Python能够使用于广大领域,如:数据解析、组件集成、互连网服务、图像管理、数值计算和科学计算等大多世界。近年来正式差不多全数大中型互连网公司都在运用Python,如:Youtube、Dropbox、BT、Quora(中华人民共和国新浪)、豆瓣、微博、谷歌(Google)、Yahoo!、照片墙(TWT智跑.US)、NASA、百度、腾讯、汽车之家、美团等。

4.2.编码

Py3.x: ALL IS UNICODE NOW

九、模块初识  

Python的壮大之处在于她有卓殊丰裕和强有力的标准库和第一方库,差不离你想落成的其余作用都有对应的Python库帮忙,现在的课程中会深切讲授常用到的各样库,以后,大家先来象征性的学三个简易的。

sys

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import sys

print(sys.argv)


#输出
$ python test.py helo world 
['test.py', 'helo', 'world']  #把执行脚本时传递的参数获取到了

  

os

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import os

os.system("df -h") #调用系统命令

全然结合一下  

import os,sys

os.system(''.join(sys.argv[1:])) #把用户的输入的参数当作一条命令交给os.system来执行

和睦写个模块

python tab补全模块

金沙注册送58 18金沙注册送58 19

1 import sys
2 import readline
3 import rlcompleter
4 
5 if sys.platform == 'darwin' and sys.version_info[0] == 2:
6     readline.parse_and_bind("bind ^I rl_complete")
7 else:
8     readline.parse_and_bind("tab: complete")  # linux and python3 on mac

for mac

金沙注册送58 20金沙注册送58 21

1 #!/usr/bin/env python 
 2 # python startup file 
 3 import sys
 4 import readline
 5 import rlcompleter
 6 import atexit
 7 import os
 8 # tab completion 
 9 readline.parse_and_bind('tab: complete')
10 # history file 
11 histfile = os.path.join(os.environ['HOME'], '.pythonhistory')
12 try:
13     readline.read_history_file(histfile)
14 except IOError:
15     pass
16 atexit.register(readline.write_history_file, histfile)
17 del os, histfile, readline, rlcompleter

for Linux

写完保存后就足以行使了

localhost:~ jieli$ python 
Python 2.7.10 (default, Oct 23 2015, 18:05:06) 
[GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.59.5)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import tab

你会发觉,上边自身写的tab.py模块只幸好当前目录下导入,如若想在系统的何何3个地点都利用如何是好呢?
此时您将在把这些tab.py放到python全局情状变量目录里啦,基本相似都坐落2个叫 Python/贰.7/site-packages 目录下,那几个目录在不一致的OS里放的职位分化,用 print(sys.path) 能够查看python情形变量列表。

  

目前Python首要应用领域:

4.3.语法
  • PRINT IS A FUNCTION

The statement has been replaced with a print() function, with keyword
arguments to replace most of the special syntax of the old statement
(PEP 3105). Examples:

2.X: print "The answer is", 2*2
3.X: print("The answer is", 2*2)
2.X: print x,                              # 使用逗号结尾禁止换行
3.X: print(x, end=" ")                     # 使用空格代替换行
2.X: print                                 # 输出新行
3.X: print()                               # 输出新行
2.X: print >>sys.stderr, "fatal error"
3.X: print("fatal error", file=sys.stderr)
2.X: print (x, y)                          # 输出repr((x, y))
3.X: print((x, y))                         # 不同于print(x, y)!

10、.pyc是个如何鬼?

一. Python是一门解释型语言?

本人初学Python时,听到的关于Python的首先句话就是,Python是一门解释性语言,笔者就这么一贯相信下去,直到开采了*.pyc文件的留存。即使是解释型语言,那么生成的*.pyc文件是什么样吗?c应该是compiled的缩写才对呀!

为了幸免别的学习Python的人也被那句话误解,那么大家就在文中来驳斥蜚语下这一个难点,并且把一些基础概念给理清。

  

二. 解释型语言和编写翻译型语言 

微型Computer是不能分辨高等语言的,所以当我们运转贰个尖端语言程序的时候,就需求三个“翻译机”来致力把高等语言调换成计算机能读懂的机器语言的进程。那几个历程分成两类,第一种是编写翻译,第3种是表达。

编写翻译型语言在程序试行从前,先会通过编写翻译器对程序试行三个编译的经过,把程序转变成机器语言。运营时就不供给翻译,而一贯试行就可以了。最优秀的例证正是C语言。

解释型语言就从未这几个编写翻译的长河,而是在程序运转的时候,通过解释器对程序逐行作出表明,然后径直运转,最优良的例证是Ruby。

由此上述的事例,大家能够来总括一下解释型语言和编写翻译型语言的利害,因为编写翻译型语言在程序运维从前就早已对程序做出了“翻译”,所以在运维时就少掉了“翻译”的过程,所以效能相比较高。可是大家也不能够一视同仁,一些解释型语言也足以经过解释器的优化来在对程序做出翻译时对整个程序做出优化,从而在功能上越过编写翻译型语言。

其它,随着Java等遵照虚拟机的语言的起来,大家又无法把语言纯粹地分成解释型和编写翻译型那两种。

用Java来比喻,Java首先是透过编写翻译器编写翻译成字节码文件,然后在运行时经过解释器给解释成机器文件。所以大家说Java是一种先编译后解释的言语。

 

三. Python终归是如何 

其实Python和Java/C#一样,也是一门基于虚拟机的言语,我们先来从表面上粗略地打听一下Python程序的运转进程吧。

当大家在命令行中输入python
hello.py时,其实是激活了Python的“解释器”,告诉“解释器”:你要从头工作了。不过在“解释”从前,其实试行的首先项专门的学问和Java同样,是编写翻译。

纯熟Java的校友能够想转手大家在指令行中怎么着实行一个Java的次序:

javac hello.java

java hello

 

只是大家在用Eclipse之类的IDE时,将那两部给融合成了1部而已。其实Python也同等,当大家实施python
hello.py时,他也因循古板实行了这么一个进度,所以大家相应如此来描述Python,Python是1门先编写翻译后解释的言语。

4. 简述Python的运作进程

在说那一个主题材料在此之前,大家先来讲五个概念,PyCodeObject和pyc文件。

我们在硬盘上收看的pyc自然不必多说,而实际上PyCodeObject则是Python编写翻译器真正编写翻译成的结果。大家先轻巧领悟就可以了,继续向下看。

当python程序运维时,编译的结果则是保存在位于内部存款和储蓄器中的PyCodeObject中,当Python程序运转截止时,Python解释器则将PyCodeObject写回到pyc文件中。

当python程序第三次运维时,首先程序会在硬盘中研究pyc文件,若是找到,则直接载入,不然就再度下边包车型地铁进程。

所以大家相应那样来恒定PyCodeObject和pyc文件,大家说pyc文件其实是PyCodeObject的一种持久化保存方法。

 

云计算: 云计算最火的言语, 标准应用OpenStack

4.4.Rename module
Old Name New Name
_winreg winreg
ConfigParser configparser
copy_reg copyreg
Queue queue
SocketServer socketserver
markupbase _markupbase
repr reprlib
test.test_support test.support

101、数据类型初识 

1、数字

二 是1个平头的例证。
长整数 可是是大学一年级部分的整数。
三.二三和5贰.三E-4是浮点数的例证。E标志表示10的幂。在此间,5贰.三E-四意味着5二.3
* 10-4。
(-5+四j)和(二.3-四.陆j)是复数的例子,当中-5,4为实数,j为虚数,数学中意味着复数是什么?。

int(整型)

  在三十二人机器上,整数的位数为三十七位,取值范围为-贰**31~2**31-1,即-2147483648~2147483647
  在陆拾位系统上,整数的位数为陆16人,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807

long(长整型)   跟C语言差别,Python的长整数未有点名位宽,即:Python没有限定长整数数值的轻重缓急,但骨子里由于机械内部存款和储蓄器有数,大家应用的长整数数值不或许Infiniti大。
  注意,自从Python二.二起,倘使整数产生溢出,Python会自动将整数数据转换为长整数,所以今后在长整数数据背后不加字母L也不会变成严重后果了。
float(浮点型)

   
  *
先扫盲  *   浮点数用来处理实数,即包涵小数的数字。类似于C语言中的double类型,占七个字节(6四人),当中5四人代表底,9个人表示指数,剩下的一人代表符号。
complex(复数)
  复数由实数部分和虚数部分组成,一般情势为x+yj,在那之中的x是复数的实数部分,y是复数的虚数部分,这里的x和y都以实数。

注:Python中设有小数字池:-伍 ~ 二伍7

 

2、布尔值

  真或假

  1 或 0

3、字符串

“hello world”

万恶的字符串拼接:

  python中的字符串在C语言中反映为是3个字符数组,每一回成立字符串时候要求在内部存款和储蓄器中开荒1块三番五次的空,并且只要须求修改字符串的话,就需求再次开荒空间,万恶的+号每出现二回就能够在内从中重新开辟1块空间。

字符串格式化输出

name = "alex"
print "i am %s " % name

#输出: i am alex

PS: 字符串是 %s;整数 %d;浮点数%f

字符串常用功效:

  • 移除空白
  • 分割
  • 长度
  • 索引
  • 切片

4、列表

始建列表:

name_list = ['alex', 'seven', 'eric']
或
name_list = list(['alex', 'seven', 'eric'])

基本操作:

  • 索引
  • 切片
  • 追加
  • 删除
  • 长度
  • 切片
  • 循环
  • 包含

五、元组(不可变列表)

创制元组:

ages = (11, 22, 33, 44, 55)
或
ages = tuple((11, 22, 33, 44, 55))

 

6、字典(无序)

创建字典:

person = {"name": "mr.wu", 'age': 18}
或
person = dict({"name": "mr.wu", 'age': 18})

常用操作:

  • 索引
  • 新增
  • 删除
  • 键、值、键值对
  • 循环
  • 长度

WEB开发: 众多优异的WEB框架,众多巨型网址均为Python开荒,Youtube,
Dropbox, 豆瓣。。。, 规范WEB框架有Django

5.Python安装

官网:https://www.python.org/downloads
合法文书档案:https://docs.python.org/2.7/

102、数据运算  

算数运算:

金沙注册送58 22

相比运算:

金沙注册送58 23

赋值运算:

金沙注册送58 24

逻辑运算:

金沙注册送58 25

分子运算:

金沙注册送58 26

身份运算:

金沙注册送58 27

位运算:

金沙注册送58 28

#!/usr/bin/python

a = 60            # 60 = 0011 1100
b = 13            # 13 = 0000 1101
c = 0

c = a & b;        # 12 = 0000 1100
print "Line 1 - Value of c is ", c

c = a | b;        # 61 = 0011 1101
print "Line 2 - Value of c is ", c

c = a ^ b;        # 49 = 0011 0001 #相同为0,不同为1
print "Line 3 - Value of c is ", c 

c = ~a;           # -61 = 1100 0011
print "Line 4 - Value of c is ", c

c = a << 2;       # 240 = 1111 0000
print "Line 5 - Value of c is ", c

c = a >> 2;       # 15 = 0000 1111
print "Line 6 - Value of c is ", c

\按位取反运算规则(按位取反再加一)  
详解

 

运算符优先级:

金沙注册送58 29

更加多内容:碰撞这里

  

没有错运算、人工智能: 典型库NumPy, SciPy, Matplotlib, Enthought
librarys,pandas

5.1.windows

  • 私下认可安装路线:C:\python27

  • 配置情形变量

图片来自原创

十三、表达式if … else

场景一、用户登录验证

# 提示输入用户名和密码

# 验证用户名和密码
#     如果错误,则输出用户名或密码错误
#     如果成功,则输出 欢迎,XXX!


#!/usr/bin/env python
# -*- coding: encoding -*-

import getpass


name = raw_input('请输入用户名:')
pwd = getpass.getpass('请输入密码:')

if name == "alex" and pwd == "cmd":
    print("欢迎,alex!")
else:
    print("用户名和密码错误")

场景②、猜年龄游戏

在先后里设定好你的岁数,然后运行程序让用户测度,用户输入后,根据他的输入提醒用户输入的是或不是正确,假诺不当,提醒是猜大了依然小了

#!/usr/bin/env python
# -*- coding: utf-8 -*-


my_age = 28

user_input = int(input("input your guess num:"))

if user_input == my_age:
    print("Congratulations, you got it !")
elif user_input < my_age:
    print("Oops,think bigger!")
else:
    print("think smaller!")

  

外层变量,能够被内层代码应用

内层变量,不应被外层代码应用

 

系统运营: 运营职员必备语言

5.2.Linux、Mac

linux mac平台私下认可就安装python,若是版本须求达不到,供给重装

  • 源代码安装

# tar -zxvf Python-2.7.13-source.tgz
# cd Python-2.7.13
# ./configure --prefix=/${PYTHON_HOME}/python2.7.13
# make 
# make install

#调整系统环境变量为python2.7.13
# vi /etc/profile
export PATH=/${PYTHON_HOME}/python2.7.13/bin:$PATH

十四、表达式for loop

最简便的轮回十遍

#_*_coding:utf-8_*_
__author__ = 'Alex Li'


for i in range(10):
    print("loop:", i )

输出:

loop: 0
loop: 1
loop: 2
loop: 3
loop: 4
loop: 5
loop: 6
loop: 7
loop: 8
loop: 9

须求1:还是地点的先后,可是蒙受小于伍的轮回次数就不走了,直接跳入下2回巡回

for i in range(10):
    if i<5:
        continue #不往下走了,直接进入下一次loop 
    print("loop:", i )

须要二:依然地方的先后,不过碰到抢先5的大循环次数就不走了,直接退出

for i in range(10):
    if i>5:
        break #不往下走了,直接跳出整个loop
    print("loop:", i )

 

金融:量化交易,金融分析,在金融工程领域,Python不但在用,且用的最多,而且首要渐渐升高。原因:作为动态语言的Python,语言结构清晰轻巧,库丰富,成熟稳固,科学计算和总计分析都很牛逼,生产效用远远高于c,c++,java,尤其擅长战略回测

6.初识Python

十五、while loop   

 有壹种循环叫死循环,1经触发,就运转个天荒地老、山盟海誓。

山势海盟代码

count = 0
while True:
    print("你是风儿我是沙,缠缠绵绵到天涯...",count)
    count +=1

 

事实上不外乎时刻,未有啥样是固定的,死loop照旧少写为好 

上边的代码循环九16回就淡出吧

 

count = 0
while True:
    print("你是风儿我是沙,缠缠绵绵到天涯...",count)
    count +=1
    if count == 100:
        print("去你妈的风和沙,你们这些脱了裤子是人,穿上裤子是鬼的臭男人..")
        break

 

 

回到地点for
循环的事例,如何达成让用户不断的猜年龄,但只给最多一次机会,再猜不对就淡出程序。

#!/usr/bin/env python
# -*- coding: utf-8 -*-


my_age = 28

count = 0
while count < 3:
    user_input = int(input("input your guess num:"))

    if user_input == my_age:
        print("Congratulations, you got it !")
        break
    elif user_input < my_age:
        print("Oops,think bigger!")
    else:
        print("think smaller!")
    count += 1 #每次loop 计数器+1
else:
    print("猜这么多次都不对,你个笨蛋.")

  

  

图形GUI: PyQT, WxPython,TkInter

六.一.标识性开篇:hello world程序

据传说每三个程序猿的率先个程序:Hello
World!,从此他们就走上了一条不归路…

十六、作业 

作业一:博客

作业2:编写登录接口

  • 输入用户名密码
  • 申明成功后显得应接音讯
  • 输错2回后锁定

 

学业3:多级菜单

  • 三级菜单
  • 可依次选用进入各子菜单
  • 所需新知识点:列表、字典

  

  

  

 

 

  

  

 

  

 

Python在部分商厦的选拔:

6.1.1.解释器实践
$ python
Python 2.7.10 (default, Jun  1 2017, 11:18:18) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-18)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> print('Hello World!')
Hello World!

入门知识10遗

一、bytes类型

 

2、三元运算

1
result = 1 if 条件 else 2

若是基准为真:result = 值一
1旦基准为假:result = 值二

三、进制

  • 二进制,01
  • 八进制,01234567
  • 十进制,0123456789
  • 十6进制,0123456789ABCDEF
     2进制到16进制调换

计算机内部存款和储蓄器地址和怎么用1陆进制?

缘何用16进制

一、Computer硬件是0101二进制的,16进制刚好是二的倍数,更便于表明3个下令可能数额。十6进制更轻易,因为换算的时候壹人1陆进制数能够顶几个人二进制数,约等于3个字节(6人进制能够用多少个1六进制表示)

二、最早规定ASCII字符集选取的正是8bit(早先时期扩张了,可是基础单位恐怕八bit),8bit用贰个1陆进制间接就会表达出来,不管阅读如故存款和储蓄都比其余进制要便于
3、Computer中CPU运算也是比照ASCII字符集,以16、3二、64的那样的方法在向上,由此数据沟通的时候16进制也彰显更好
四、为了统1规范,CPU、内部存款和储蓄器、硬盘大家看出都以应用的1陆进制总结

1陆进制用在哪个地方
一、网络编制程序,数据沟通的时候必要对字节进行剖析都以叁个byte1个byte的拍卖,一个byte能够用0xFF多少个16进制来表明。通过网络抓包,能够看到数据是经过1陆进制传输的。
二、数据存款和储蓄,存款和储蓄到硬件中是0十一的不2秘诀,存储到系统中的表明方式都以byte情势

三、一些常用值的定义,举例:大家平常利用的html中color表达,就是用的1六进制格局,五个1陆进制位可以表明好几百万的颜料音信。

谷歌(Google):谷歌(Google) App Engine 、code.google.com 、谷歌(Google) earth
、谷歌爬虫、谷歌(Google)广告等体系都在大气用到Python开辟

陆.1.二.文书推行

除此而外直接调用python自带的交互器运维代码,,还足以把程序写在文书里;linux
下开创叁个文件叫hello.py,并输入

print("Hello World!")

然后试行命令:python hello.py ,输出

$ python hello_world.py 
Hello World!

 

CIA: 美利坚合众国中情局网址就是用Python开荒的

钦命解释器

上一步中推行 python hello.py 时,显明的提议 hello.py 脚本由 python
解释器来进行。
假设想要类似于实践shell脚本同样进行python脚本,例: ./hello.py
,那么就供给在 hello.py 文件的底部钦命解释器,如下(奉行在此之前记得授权):

$ cat hello_world.py 
#!/bin/env python
print("Hello World!")

$ chmod +x hello_world.py 
$ ./hello_world.py 
Hello World!

如此壹来,实行: ./hello.py 就可以。

4、 壹切皆对象

对此Python,一切事物都以目标,对象基于类创设

金沙注册送58 30

就此,以下那些值都以目的: “wupeiqi”、38、[‘北京’, ‘上海’,
‘深圳’],并且是基于差别的类生成的对象。

金沙注册送58 31金沙注册送58 32金沙注册送58 33

 

NASA: 美利坚同盟友航天局(NASA)多量选择Python进行数量解析和平运动算

柒.花费规范

PEP8英文:http://jython.cn/dev/peps/pep-0008/
PEP8中文:https://python.freelycode.com/contribution/detail/47

YouTube:世界上最大的摄像网址YouTube就是用Python开采的

柒.一.编制程序风格

Dropbox:美利坚联邦合众国最大的在线云存款和储蓄网站,全体用Python达成,天天网址拍卖10亿个公文的上传和下载

七.一.一.缩进统壹
  • 描绘代码必须顶头写
  • 依据关系的代码必须强制格式缩进

柒.一.1.一.之下代码,是还是不是能实践,那二个先被试行?

$ vim indent.py 
#!/bin/env python
def main():
  print 'Hello World!'
print 'test code!'
main()

$ python indent.py
  1. 首先来讲,隶属于main()函数的代码块是哪个?
  2. 哪些代码块先被执行?
  3. 几个代码块都顶头写是或不是能够?

七.1.一.二.品尝以下代码是不是能够?

$ vim indent.py 
#!/bin/env python
def main():
  print 'Hello World!'
    print 'test code!'
main()

照片墙:U.S.A.最大的图纸分享社交网址,每一日超过3千万张照片被分享,全体用python开采

柒.一.二.变量正规
  • 标记符第2个字符必须是字母(大写或小写)也许2个下划线 “_”
  • 标志符名称的任何一些能够有字母(大写或小写)、下划线”_”或数字(0-9)组成
  • 标志符名称是高低写敏感的Myname和myname不是同四个标志符
  • 立见成效标记符: __my_name、name23、alb2_23
  • 失效标记符:二things、this is spaced out、my-name
  • 变量名尽量要求有意义、可以代表有些意义
  • 变量名风格连串:task_detail、taskDetail、TaskDetail
  • 主要字无法宣称为变量名
    [‘and’, ‘as’, ‘assert’, ‘break’, ‘class’, ‘continue’, ‘def’, ‘del’,
    ‘elif’, ‘else’, ‘except’, ‘exec’, ‘finally’, ‘for’, ‘from’,
    ‘global’, ‘if’, ‘import’, ‘in’, ‘is’, ‘lambda’, ‘not’, ‘or’, ‘pass’,
    ‘print’, ‘raise’, ‘return’, ‘try’, ‘while’, ‘with’, ‘yield’]

>>> 3name = 123
  File "<stdin>", line 1
    3name = 123
        ^
SyntaxError: invalid syntax
>>> this is = 'here!'
  File "<stdin>", line 1
    this is = 'here!'
            ^
SyntaxError: invalid syntax

如上是谬误的演示

推特:大批量的基本功库均经过Python完结的

八.变量赋值

计算机科学中不可能完全以数学思维方法来思量难点。如变量的赋值落成就和自然科学中数学是区别的。

Redhat: 世界上最风靡的Linux发行版本中的yum包管理工科具便是用python开垦的

以下代码中 x 和 y的结果?
$ cat evaluation.py 
#!/bin/env python

x = 123
y = x
x = 456
print 'x: ' ,x
print 'y: ' ,y

豆类: 公司大概全部的职业均是透过Python开采的

赋值分析

图形来源于原创

  • x = 二为例,python解释器干了两件事情

    1. 在内存中成立了叁个 2 的整数
    2. 在内部存款和储蓄器中开创了四个名称叫x的变量,并把它指向贰
  • 代码实施分析
    一.变量x赋值1二叁,指向内部存款和储蓄器数据1二三
    二.变量y赋值为x,即也是还要针对内部存款和储蓄器数据1二三
    三.变量x赋值45陆,即从新讲指针指向数据45陆

天涯论坛: 国内最大的问答社区,通过Python开垦(国外Quora)

九.字符编码

春雨医师:国内盛名的在线医疗网址是用Python开拓的

9.1.ASCII

ASCII(American Standard Code for Information
Interchange,美利坚联邦合众国规范消息置换代码)是依据拉丁字母的一套Computer编码系统,首要用来体现今世保加福冈语和此外西欧语言,其最两只好用
八 位来表示(一个字节),即:二**捌 = 256,所以,ASCII码最多只好表示
256 个标记。

2.x本子python解释器在加载 .py
文件中的代码时,会对剧情展开编码(暗许ascill)

图表来源于网络

显著ASCII码不能够将世界上的各样文字和符号全体意味,所以,就必要新出壹种能够象征全部字符和标志的编码,即:Unicode

除上面之外,还有博客园、金山、腾讯、盛大、和讯、百度、Ali、天猫、马铃薯、和讯、果壳等营业所都在行使Python完结美妙绝伦的任务。

9.2.Unicode

Unicode(统1码、万国码、单壹码)是一种在处理器上采纳的字符编码。Unicode
是为着化解守旧的字符编码方案的受制而发生的,它为各样语言中的种种字符设定了联合并且唯壹的2进制编码,规定虽有的字符和符号最少由
1陆 位来表示(二个字节),即:2 **16 = 65536,
注:此处说的的是最少一个字节,恐怕越来越多

积累数据要用五个八个字节来代表,首要用来存款和储蓄粤语、希腊语等编码格式,但出于字母本人就能够用三个字节来代表,所以都在Unicode的编码下,对于字母型数据,会导致很大的浪费

Python是一门怎么的语言?

9.3.UTF-8

UTF-八,是对Unicode编码的回落和优化,他不再使用最少使用一个字节,而是将具有的字符和标志实行分拣:ascii码中的内容用三个字节保存、欧洲的字符用2个字节保留,东南亚的字符用3个字节保存…

为化解Unicode字母型数据形成浪费的主题材料,字母用三个字节表示,中文等用五个字节表示(灵活可变的尺寸应对不用的项目标多少)

故而,python解释器在加载 .py
文件中的代码时,会对剧情进行编码(暗许ascill),倘若是之类代码的话:

# vim hello_world.py

#!/bin/env python
print('厉害了,word哥')

# python hello_world.py 
  File "hello_world.py", line 2
SyntaxError: Non-ASCII character '\xe5' in file hello_world.py on line 2, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details

相应显得的告知python解释器,用什么样编码来实践源代码:

# vim hello_world.py 

#!/bin/env python
# _*_ coding:utf-8 _*_
print('厉害了,word哥')

编制程序语言主要从以下多少个角度为举办分类,编写翻译型和解释型、静态语言和动态语言、强类型定义语言和弱类型定义语言,每一种分类代表怎么样意思啊,咱们联合来看一下。

10.注释

  • ###### 单行注释:

# 被讲解内容

  • ###### 多行注释:

‘’‘被批注的代码块’‘’
“””被批注的代码块 “””

编写翻译和表明的区分是哪些?

1一.用户输入

编译器是把源程序的每一条语句都编写翻译成机器语言,并保留成二进制文件,那样运转时计算机能够平昔以机器语言来运作此程序,速度十分的快;

1一.一.格式化打字与印刷用户的结果

渴求用户输入基本新闻后,格式化打字与印刷

1一.一.壹.通过拼接+号的办法落成格式化打字与印刷输出,该办法不是极品的方案,因为每一回拼接在内部存储器中需求开拓一块内部存款和储蓄器空间用于存放拼接的数额,so精确的章程参考一下方法

names = raw_input('Enter your name? ')
age = str(input('Enter your age? '))
job = raw_input('Enter your job? ')
salary = raw_input('Enter your salary? ')

info =  """---Personal information of """ + names + """ ---------------
names   :""" + names + """
age     :""" + age + """
job     :""" + job + """
salary  :""" + salary

print info

1一.一.二.因而占位符的不二秘诀,将格式化的结果打印。

# vim raw_input.py 
#!/bin/env python
#_*_ coding:utf-8 _*_
__author__ = "Bruce.Liu"
name = raw_input('Please input your name:')
age = raw_input('Age: ')
job = raw_input('Job: ')

print '''
Personal information of %s:
    Name: %s
    Age : %s
    Job : %s
''' % (name, name, age, job)

打印结果,验证

# python raw_input.py 
Please input your name:Bruce.Liu 
Age: 27
Job: IT

Personal information of Bruce.Liu:
    Name: Bruce.Liu
    Age : 27
    Job : IT

11.2.3..format主意完结格式化打字与印刷

print '''
---Personal information of {_name} ---------------
names   : {_name}
age     : {_age}
job     : {_job}
salary  : {_salary}
'''.format(_name=names, _age=age, _job=job, _salary=salary )

解释器则是只在实施顺序时,才一条一条的解说成机器语言给Computer来实践,所以运营速度是不比编写翻译后的程序运营的快的.

12.Module简介

Python的庞大之处在于她有非常充裕和有力的规范库和第1方库,差不离你想达成的别的功能都有对应的Python库援救,以后的科目中会浓密批注常用到的各类库,现在,我们先来象征性的学3个简易的。

那是因为Computer不能一向认知并实施我们写的话语,它只好认知机器语言(是二进制的款式)

12.1.Module分类

Python有大批量的模块,从而使得开拓Python程序卓殊简短。类库有囊括叁中:

  • Python内部提供的模块
  • 正式开源的模块
  • 技师自身开销的模块

金沙注册送58 34

12.2.Module实践

金沙注册送58 35

12.2.1.SYS Module
  • 收获施行脚本的传参

$ vim sys_module.py 
#!/bin/env python
# _*_ coding: utf-8 _*_
import sys
print(sys.argv)

$ python sys_module.py args1 
['sys_module.py', 'args1']

编译型vs解释型

12.2.2.OS Module
  • 调用操作系统命令

$ cat os_module.py 
#!/bin/env python
# _*_ coding:utf-8 _*_
import os
os.system("df -h")
  • 重组一下

$ cat exec_cmd.py 
#!/bin/env python
# _*_ coding:utf-8 _*_
import os,sys
#print sys.argv, ''.join(sys.argv[1])
os.system(''.join(sys.argv[1:]))

$ python exec_cmd.py free
             total       used       free     shared    buffers     cached
Mem:      49374032   34720292   14653740        564     775392   27056956
-/+ buffers/cache:    6887944   42486088
Swap:      8388600       3104    8385496

编译型

12.2.3.Custom Module

默许的Cpython解释器,不提供tab键自动补全功用,so
Now!大家加二个那种效果;让大家的就学更是简明

12.贰.三.1.找到python全局景况变量目录,方便我们今后在别的1个门路下Cpython都能识别到自定义的Module

>>> import sys
>>> sys.path
['', '/usr/local/python/lib/python2.7/site-packages/pip-9.0.1-py2.7.egg', '/usr/local/python/lib/python27.zip', '/usr/local/python/lib/python2.7', '/usr/local/python/lib/python2.7/plat-linux2', '/usr/local/python/lib/python2.7/lib-tk', '/usr/local/python/lib/python2.7/lib-old', '/usr/local/python/lib/python2.7/lib-dynload', '/usr/local/python/lib/python2.7/site-packages']

12.2.三.二.在Python默许找寻的路子下开创Module

$ cd /usr/local/python/lib/python2.7/site-packages
$ vim tab.py
#!/bin/env python

try:
  import readline

except ImportError:
  print ("Module readline not available.")
else:
  import rlcompleter
  readline.parse_and_bind("tab: complete")

12.2.3.3.导入该Module

$ python
Python 2.7.10 (default, Jun  1 2017, 11:18:18) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-18)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import tab

sys.path会打字与印刷Python全局情状变量目录,一般都位于四个叫
Python/二.7/site-packages 目录下,那么些目录在差别的OS里放的任务不均等,用
print(sys.path) 能够查阅python景况变量列表。

亮点:编写翻译器一般会有预编写翻译的历程对代码进行优化。因为编写翻译只做贰回,运转时没有供给编写翻译,所以编写翻译型语言的程序实行功用高。能够退出语言情状独立运营。

13.pyc文件

pyc是一种贰进制文件,是由py文件通过编写翻译后,生成的文件,是一种byte
code,py文件变成pyc文件后,加载的速度有所升高,而且pyc是1种跨平台的字节码,是由python的虚拟机来施行的,那个是接近于JAVA大概.NET的虚拟机的概念。pyc的内容,是跟python的版本相关的,分歧版本编写翻译后的pyc文件是见仁见智的,贰.5编写翻译的pyc文件,二.四版本的
python是不可能施行的。

症结:编译之后如若急需修改就要求方方面面模块重新编写翻译。编写翻译的时候依照对应的运作条件生成机器码,分裂的操作系统之间移植就能够有标题,须要依照运转的操作系统情况编写翻译差异的可实践文件。

一叁.一.解释型语言和编写翻译型语言

管理器是无法分辨高等语言的,所以当大家运维2个高档语言程序的时候,就需求五个“翻译机”来从事把高端语言调换成Computer能读懂的机器语言的进度。那个历程分成两类,第1种是编写翻译,第二种是演讲。

编写翻译型语言在程序施行以前,先会通过编写翻译器对程序实践2个编写翻译的历程,把程序转换成机器语言。运转时就无需翻译,而一向实践就能够了。最卓绝的例证正是C语言。

解释型语言就不曾那几个编写翻译的进程,而是在程序运维的时候,通过解释器对程序逐行作出解释,然后径直运行,最特异的例子是Ruby。

透过以上的例子,大家得以来总计一下解释型语言和编写翻译型语言的利弊,因为编写翻译型语言在程序运转在此之前就曾经对先后做出了“翻译”,所以在运作时就少掉了“翻译”的历程,所以作用相比较高。不过我们也不能一碗水端平,一些解释型语言也得以通过解释器的优化来在对先后做出翻译时对全部程序做出优化,从而在功用上当先编写翻译型语言。

别的,随着Java等依附虚拟机的言语的勃兴,大家又不能够把语言纯粹地分成解释型和编写翻译型那二种。

用Java来比喻,Java首先是经过编写翻译器编写翻译成字节码文件,然后在运维时通过解释器给解释成机器文件。所以大家说Java是①种先编写翻译后解释的语言。

解释型

壹3.二.Python究竟是怎么

其实Python和Java/C#如出一辙,也是一门基于虚拟机的语言,大家先来从表面上轻便地问询一下Python程序的周转进程吧。

当我们在命令行中输入python
hello.py时,其实是激活了Python的“解释器”,告诉“解释器”:你要起来职业了。不过在“解释”在此以前,其实奉行的第二项职业和Java同样,是编写翻译。

熟习Java的同学能够想转手大家在命令行中怎么着进行一个Java的主次:

javac hello.java
java hello

只是大家在用Eclipse之类的IDE时,将这两部给融合成了一部而已。其实Python也同样,当大家试行python
hello.py时,他也1律举行了那样1个进度,所以大家应该这么来说述Python,Python是1门先编写翻译后解释的言语。

可取:有爱不释手的平台包容性,在其他情状中都能够运维,前提是设置掌握释器(虚拟机)。灵活,修改代码的时候一向修改就能够,能够快速安排,不用停机维护。

一三.三.简述Python奉行进程

图片来源网络

与java类似,Python将.py编写翻译为字节码,然后通过虚拟机推行。编写翻译进度与虚拟机试行进度均在python二5.dll中。Python虚拟机比java更抽象,离底部更远。
编写翻译进程不仅生成字节码,还要包括常量、变量、占用栈的空间等,Pyton中编译进度生成code对象PyCodeObject。将PyCodeObject写入贰进制文件,即.pyc。

大家在硬盘上来看的pyc自然不用多说,而实际上PyCodeObject则是Python编译器真正编写翻译成的结果。我们先简单理解就足以了,继续向下看。

当python程序运转时,编写翻译的结果则是保存在位于内部存款和储蓄器中的PyCodeObject中,当Python程序运转截至时,Python解释器则将PyCodeObject写回到pyc文件中。

当python程序第2遍运营时,首先程序会在硬盘中检索pyc文件,借使找到,则直接载入,不然就再也上面的进度。

从而大家应有如此来恒定PyCodeObject和pyc文件,大家说pyc文件其实是PyCodeObject的一种持久化保存方法。

缺陷:每一遍运维的时候都要疏解一次,质量上比不上编写翻译型语言。

1肆.数据类型简要介绍

Python有四个正规的数据类型:

  • Numbers(数字)
  • Bool(布尔值)
  • String(字符串)
  • List(列表)
  • Tuple(元组)
  • Dictionary(字典)

一、低等语言与高端语言

14.1.Number(数字)

数学复习:
http://www.guokr.com/post/432219/

Python补助三种差异的数字类型:

  • int(有标记整型)
  • long(长整型[也得以象征捌进制和十陆进制])
  • float(浮点型)
  • complex(复数)
  • bool

早期的微管理器程序都以用0和壹的队列表示的,工程师直接选拔的是机器指令,不要求翻译,从纸带打孔输入就可以实行获得结果。后来为了便于回忆,就将用0、一队列表示的机器指令都用符号助记,那几个与机器指令1壹对应的助记符就成了汇编指令,从而诞生了汇编语言。无论是机器指令依旧汇编指令都以面向机器的,统称为低档语言。因为是针对特定机器的机器指令的助记符,所以汇编语言是力不从心单独于机器(特定的CPU种类布局)的。但汇编语言也是要经过翻译成机器指令本事试行的,所以也有将运营在1种机器上的汇编语言翻译成运营在另一种机器上的机器指令的点子,那正是陆续汇编技巧。

1四.一.一.int(有号子整型)
  • x6四系统上,整数的位数为陆14个人,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807

>>> var1 = 1
>>> print type(var)
<type 'int'>
>>> del var

尖端语言是从人类的逻辑思考角度出发的Computer语言,抽象程度大大进步,需求经过编写翻译成特定机器上的目的代码才干试行,一条高档语言的说话往往必要多少条机器指令来完毕。高档语言独立于机器的风味是靠编写翻译器为不一样机器生成分化的目的代码(或机器指令)来兑现的。那现实的说,要将高档语言编写翻译到哪边程度吗,那又跟编写翻译的才能有关了,既能够编写翻译成直接可施行的靶子代码,也可以编写翻译成一种中间表示,然后获得分化的机械和连串上去实施,那种状态普通又供给支持情形,举例解释器或虚拟机的支撑,Java程序编译成bytecode,再由不一样平台上的虚拟机试行就是很好的例子。所以,说高等语言不借助于于机器,是指在差异的机器或平台上高端语言的次第自己不改变,而经过编写翻译器编写翻译得到的靶子代码去适应分裂的机械。从那么些意义上来讲,通过交叉汇编,一些汇编制程序序也得以赢得不一致机器之间的可移植性,但那种路径获得的移植性远远不及高等语言来的造福和实用性大。

14.1.2.long(长整型)
  • Python的长整数未有点名位宽,即:Python没有限制长整数数值的分寸,但实则由于机械内部存款和储蓄器有数,大家采纳的长整数数值不容许极端大。
  • 自打Python二.2起,假设整数产生溢出,Python会自动将整数数据转换为长整数

>>> var = 2 ** 63
>>> type(var)
<type 'long'>

二、编写翻译与解释

14.1.3.float(浮点型)

图形源于互联网

  • 浮点数用来管理实数,即包蕴小数的数字。类似于C语言中的double类型,占七个字节(61位),其中55位代表底,1四位代表指数,剩下的1个人表示符号。

>>> var2 = 3.1415926
>>> print type(var2)
<type 'float'>

编写翻译是将源程序翻译成可进行的目标代码,翻译与试行是分离的;而解释是对源程序的翻译与实践1回性达成,不生成可存款和储蓄的目标代码。那只是表象,二者背后的最大不一样是:对解释实行来讲,程序运维时的调整权在解释器而不在用户程序;对编译实施来说,运转时的调控权在用户程序。

14.1.4.complex(复数)
  • 复数由实数部分和虚数部分组成,一般方式为x+yj,当中的x是复数的实数部分,y是复数的虚数部分,这里的x和y都以实数。
  • 注:Python中设有小数字池:-伍 ~ 2伍7

>>> aComplex = -8.333-1.47j
>>> aComplex.real
-8.333
>>> aComplex.imag
-1.47

表达具备优秀的动态性情和可移植性,举个例子在解释实践时得以动态改换变量的等级次序、对先后开始展览退换以及在先后中插入卓绝的调弄整理会诊音讯等,而将解释器移植到分化的类别上,则程序不用改换就能够在移植通晓释器的类别上运维。同时解释器也有一点都不小的弱项,举例实行作用低,占用空间大,因为不仅要给用户程序分配空间,解释器自个儿也侵夺了宝贵的系统能源。

14.2.Bool(布尔值)

  • 归来真或假
    数据值推断Bool值时,0为False、非0为True;像list、str等数据结构时,空值表示False、有值表示Ture

>>> bool(0)
False
>>> bool(-1)
True
>>> a = [1,2,3]
>>> b = []
>>> bool(a)
True
>>> bool(b)
False

编写翻译器是把源程序的每一条语句都编写翻译成机器语言,并保留成二进制文件,那样运转时计算机能够直接以机器语言来运营此程序,速度高速;

14.3.String(字符串)

python中的字符串在C语言中体现为是3个字符数组,每一趟创立字符串时候供给在内部存款和储蓄器中开拓壹块三番五次的空,并且只要须求修改字符串的话,就须要再度开发空间,万恶的+号每出现一次就能够在内从中重新开垦一块空间。

>>> sehai = "Hello " + "World"

尽大概用一下主意:字符串格式化

  • 左手放着3个占位转变表明符,右边放置格式化的值
  • %d:整数型
  • %f:浮点型
  • %s;字符型

而解释器则是只在奉行顺序时,才一条一条的分解成机器语言给计算机来实行,所以运转速度是不及编译后的程序运转的快的.

14.叁.壹.字符型占位符示例
>>> name = "Bruce.Liu"
>>> print "i am is %s" % name
i am is Bruce.Liu

借使有多个转移表明符时,必须元组的地貌存在。不但是抛卓殊

>>> format = "Hello. %s. %s enough for ya?"
>>> values = ('world','Hot')
>>> print format % values
Hello. world. Hot enough for ya?

编写翻译型和平化解释型

1四.三.二.整数型占位符示例
  • 该示例中,完全能够用%s当做占位符,不过假诺输入的值产生数学生运动算时,最棒依旧%d相比较好

>>> format = '100 + 250 = %d' % 350
>>> print format
100 + 250 = 350

我们先看看编写翻译型,其实它和汇编语言是同等的:也是有二个顶住翻译的次第来对大家的源代码进行调换,生成相对应的可实行代码。这么些历程说得标准一点,就称为编写翻译(Compile),而担当编写翻译的先后自然就叫做编写翻译器(Compiler)。若是大家写的程序代码都包罗在三个源文件中,那么普通编写翻译之后就能够一向生成三个可施行文件,我们就足以平昔运营了。但对于2个相比较复杂的档期的顺序,为了方便管理,大家一般把代码分散在相继源文件中,作为不一致的模块来组织。那时编写翻译各类文件时就能生成指标文件(Object
 
file)而不是前面说的可实施文件。一般多少个源文件的编写翻译都会相应多少个目的文件。这么些目的文件里的始末好多已经是可施行代码了,但由于只是1体项目的一部分,所以大家还无法一贯运营。待全部的源文件的编写翻译都马到成功,大家就足以最后把这个半成品的目的文件“打包”成3个可执行文件了,那一个工作由另1个主次担当落成,由于此进度看似是把带有可进行代码的目的文件两次三番装配起来,所以又称为链接(Link),而担负链接的次序就叫……就叫链接程序(Linker)。链接程序除了链接目的文件外,大概还有各类财富,像图标文件啊、声音文件啊什么的,还要承受去除目的文件之间的冗余重复代码,等等,所以……也是挺累的。链接完结之后,一般就足以拿走大家想要的可实行文件了。

1四.三.三.浮点型占位符示例

1四.3.三.一.急剧和精度

>>> print 'Pi with three decimals: %10.3f' %(3.1415926)
Pi with three decimals:      3.142

1四.三.3.二.对齐填充

>>> print '%010.2f' % 3.1415
0000003.14

14.3.3.3.右填充

>>> '%-10.2f' % 3.1415
'3.14      '

地点大家大致地介绍了编写翻译型语言的特征,将来再看看解释型。噢,从字面上看,“编写翻译”和“解释”的确都有“翻译”的意思,它们的界别则在于翻译的机遇布置十分的小学一年级样。打个假如:假让你策画阅读一本外文书,而你不知道那门外语,那么你能够找一名翻译,给他足够的大运让他从头到尾把整本书翻译好,然后把书的母语版交给你读书;或许,你也登时让那名翻译扶助你读书,让她一句一句给您翻译,假使您想往重放有个别章节,他也得重新给你翻译。

14.4.List(列表)

  • List(列表) 是 Python 中动用最频仍的数据类型。
  • 列表能够成功大多数集结类的数据结构完成。它支持字符,数字,字符串以至可以分包列表(即嵌套)。

>>> l_res = ['HanXiang','ShenZhen','IT']
>>> l_res[0]
'HanXiang'

三种艺术,前者就也正是大家刚刚所说的编写翻译型:一回把具有的代码转变来机器语言,然后写成可试行文件;而后人就相当于大家要说的解释型:在程序运维的前一刻,还唯有源程序而从不可实行程序;而先后每实施到源程序的某一条指令,则会有2个称作解释程序的外壳程序将源代码转变来二进制代码以供施行,总言之,正是无休止地演说、试行、解释、推行……所以,解释型程序是离不开解释程序的。像早期的BASIC正是一门优异的解释型语言,要施行BASIC程序,就得进去BASIC意况,然后本事加载程序源文件、运维。解释型程序中,由于程序连接以源代码的款型出现,因而只要有对应的解释器,移植差不离小意思。编写翻译型程序即便源代码也能够移植,但前提是必须针对差异的连串分别开始展览编写翻译,对于复杂的工程以来,的确是壹件非常的大的时间消耗,况且很恐怕有个别细节的地点只怕要修改源代码。而且,解释型程序省却了编写翻译的步调,修改调试也要命便利,编辑完成之后就可以及时运转,不必像编写翻译型程序同样每回进行小小的改造都要耐心等待漫长的Compiling…Linking…那样的编写翻译链接进程。可是总体有利有弊,由于解释型程序是将编写翻译的进度置于实行进度中,那就调节通晓释型程序决定要比编写翻译型慢上一大截,像几百倍的速度差异也是欠缺为奇的。

14.5.Tuple(元组)

  • 元组是另3个数据类型,类似于List(列表)。
  • 元组用”()”标志。内部因素用逗号隔离。可是元组不能贰回赋值,约等于只读列表。

>>> tuple_res = ('SQL result','...')
>>> tuple_res[0]
'SQL result'

编写翻译型与解释型,两者各有利弊。前者由于程序实施速度快,同等条件下对系统须要异常的低,由此像开拓操作系统、大型应用程序、数据库系统等时都利用它,像C/C++、Pascal/Object
 
帕斯Carl(Delphi)、VB等中央都可说是编写翻译语言,而一些网页脚本、服务器脚本及扶持开垦接口那样的对进度必要不高、对两样系列平台间的包容性有一定要求的次序则日常选取解释性语言,如Java、JavaScript、VBScript、Perl、Python等等。

14.6.Dictionary(字典)

  • 字典(dictionary)是除列表以外python之中最灵敏的内置数据结构类型。列表是雷打不动的对象结合,字典是冬日的对象集结。
  • 两者之间的界别在于:字典个中的要素是由此键来存取的,而不是通过偏转移存入取。
  • 字典用”{ }”标志。字典由索引(key)和它对应的值value组成。

>>> emp_info = {'name':'Bruce','job':'IT'}
>>> emp_info['name']
'Bruce'

但既然编写翻译型与解释型各有优缺点又互相对峙,所以一堆新兴的言语都有把二者折衷起来的趋向,比如Java语言尽管比较接近解释型语言的风味,但在施行此前早已先期实行2遍预编译,生成的代码是在乎机器码和Java源代码之间的中介代码,运转的时候则由JVM(Java的虚拟机平台,可视为解释器)解释实践。它既保留了源代码的高抽象、可移植的脾气,又曾经产生了对源代码的绝大繁多预编译专门的职业,所以进行起来比“纯解释型”程序要快多数。而像VB六(只怕在此以前版本)、C#如此那般的言语,就算外表上看变化的是.exe可执行程序文件,但VB陆编写翻译之后实际变化的也是一种中介码,只然而编写翻译器在前头布署了壹段机关调用有些外部解释器的代码(该解释程序独立于用户编写的次第,存放于系统的有个别DLL文件中,全体以VB6编写翻译生成的可施行程序都要用到它),以分解实践实际的程序体。C#(以及其余.net的言语编译器)则是生成.net目的代码,实际试行时则由.net解释系统(就像JVM相同,也是一个虚拟机平台)实行实行。当然.net目标代码已经万分“低档”,比较像样机器语言了,所以仍将其视为编写翻译语言,而且其可移植程度也未尝Java号称的那样壮大,Java号称是“3回编写翻译,到处施行”,而.net则是“2遍编码,随地编写翻译”。呵呵,当然这么些都是题外话了。总来讲之,随着安插才干与硬件的持续上扬,编写翻译型与解释型三种办法的底限正在持续变得模糊。

15.作业

  • 在windows上安装python2.7.10以上的Cpython
  • 在linux上安装pyhton2.7.10以上的Cpyhton
  • 安装配置好Pycharm
    IDE,实未来windows上开采形成后,代码自动上传至linux服务器

  • 附录
  1. Python前世今生
  2. 编制程序语言简要介绍和特色
  3. What is Python?
  4. Python2 or 3?
  5. Python安装
  6. 初识Python
  7. 支出标准
  8. 变量赋值
  9. 字符编码
  10. 注释
  11. 用户输入
  12. Module简介
  13. pyc文件
  14. 数据类型基础
  15. 作业

动态语言和静态语言

平日大家所说的动态语言、静态语言是指动态类型语言和静态类型语言。

(一)动态类型语言:动态类型语言是指在运营时期才去做数据类型检查的言语,也正是说,在用动态类型的语言编制程序时,恒久也不用给其余变量内定数据类型,该语言会在您首先次赋值给变量时,在其间将数据类型记录下来。Python和Ruby就是一种标准的动态类型语言,别的的种种脚本语言如VBScript也多少属于动态类型语言。

(二)静态类型语言:静态类型语言与动态类型语言恰恰相反,它的数据类型是在编写翻译其间检查的,也正是说在写程序时要申明全体变量的数据类型,C/C++是静态类型语言的规范代表,其余的静态类型语言还有C#、JAVA等。

强类型定义语言和弱类型定义语言

(壹)强类型定义语言:强制数据类型定义的言语。也正是说,一旦贰个变量被内定了有些数据类型,借使不经过强制转换,那么它就永世是这一个数据类型了。比方:假设您定义了一个整型变量a,那么程序根本不容许将a当作字符串类型处理。强类型定义语言是种类安全的言语。

(2)弱类型定义语言:数据类型能够被忽略的言语。它与强类型定义语言相反,
三个变量能够赋区别数据类型的值。

强类型定义语言在进程上或然略逊色于弱类型定义语言,然而强类型定义语言带来的严峻质量够行得通的制止过多谬误。此外,“那门语言是否动态语言”与“那门语言是否类型安全”之间是全然未有关联的!

诸如:Python是动态语言,是强类型定义语言(类型安全的语言);
VBScript是动态语言,是弱类型定义语言(类型不安全的语言);
JAVA是静态语言,是强类型定义语言(类型安全的言语)。

因此地点这么些介绍,大家能够得出,python是1门动态解释性的强类型定义语言。那这几个基因使成就了Python的哪些优缺点呢?大家承继往下看。

Python的利弊

先看亮点

Python的原则性是“优雅”、“明显”、“轻易”,所以Python程序看上去总是轻便易懂,初学者学Python,不但入门轻便,而且今后深入下去,能够编写那么些可怜万分复杂的顺序。

支出效能非常高,Python有尤其有力的第2方库,基本上你想通过Computer落成任何成效,Python官方Curry都有照料的模块举行支撑,直接下载调用后,在基础库的根基上再展费用付,大大下落开采周期,制止双重造轮子。

尖端语言————当您用Python语言编写程序的时候,你没有须求思量诸如如何管理你的次第采纳的内部存款和储蓄器一类的最底层细节

可移植性————由于它的开源本质,Python已经被移植在重重阳节台上(经过改造使它能够工作在分化平台上)。若是您小心地制止选拔正视于系统的特色,那么您的兼具Python程序没有须求修改就大致能够在市面上具有的系统平台上运维

可扩张性————即让你须要你的1段首要代码运转得越来越快依旧希望有个别算法不精晓,你能够把你的部分程序用C或C++编写,然后在您的Python程序中利用它们。

可嵌入性————你能够把Python嵌入你的C/C++程序,从而向你的程序用户提供脚本效率。

再看缺点:

进程慢,Python
的运营速度比较C语言确实慢许多,跟JAVA比较也要慢一些,因而那也是众多所谓的大咖不屑于使用Python的珍视原因,但实质上这里所指的运行速度慢在大许多状态下用户是力不从心直接感知到的,必须依赖测试工具才能反映出来,比方你用C运三个程序花了0.0一s,用Python是0.一s,那样C语言间接比Python快了十倍,算是万分夸张了,可是你是力不从心直接通过肉眼感知的,因为二个好人所能感知的岁月十分小单位是0.一五-0.4s左右,哈哈。其实在大部分情况下Python已经完全能够满意你对先后速度的渴求,除非您要写对速度需要相当高的追寻引擎等,那种情状下,当然依然建议您用C去落成的。

代码不可能加密,因为PYTHON是解释性语言,它的源码都以以名文格局存放的,然则小编不感到这算是一个毛病,假令你的花色供给源代码必须是加密的,那您1开首就不该用Python来去实现。

线程不能够使用多CPU难题,那是Python被人责难最多的1个瑕疵,GIL即全局解释器锁(Global
Interpreter
Lock),是微型计算机程序设计语言解释器用于同步线程的工具,使得任曾几何时刻仅有1个线程在试行,Python的线程是操作系统的原生线程。在Linux上为pthread,在Windows上为Win
thread,完全由操作系统调解线程的实行。1个python解释器进度内有一条主线程,以及多条用户程序的进行线程。尽管在多核CPU平台上,由于GIL的留存,所以禁止二十八线程的并行试行。关于那么些难题的迁就消除格局,大家在此后线程和进度章节里再实行详细索求。

自然,Python还有局地别样的小缺点,在这就不1一列举了,作者想说的是,任何一门语言都不是无微不至的,都有善于和不善于做的政工,提议各位不要拿1个言语的劣势去跟另2个语言的优势来去比较,语言只是二个工具,是兑现程序设计员观念的工具,就像是大家事先中学学几何时,有的时候需求要圆规,有的时候必要用三角尺一样,拿相应的工具去做它最善于的事才是正确的挑选。此前很四人问笔者Shell和Python到底哪个好?笔者回复说Shell是个脚本语言,但Python不只是个脚本语言,能做的业务更多,然后又有钻牛角尖的人说大可不必学Python,
Python能做的事情Shell都足以做,只要你足足牛B,然后又举了用Shell能够写俄罗丝4方那样的玩乐,对此笔者能说表明只好是,不要跟SB理论,SB会把您拉到跟她一如在此以前的高度,然后用足够的经验把您打倒。

Python解释器

当我们编辑Python代码时,大家赢得的是多少个包涵Python代码的以.py为增添名的文本文件。要运行代码,就要求Python解释器去实践.py文件。

是因为壹切Python语言从专门的学问到解释器都以开源的,所以理论上,只要水平够高,任何人都足以编写制定Python解释器来实施Python代码(当然难度一点都不小)。事实上,确实存在二种Python解释器。

CPython

当大家从Python官方网站下载并安装好Python
二.七后,大家就直接拿走了一个合法版本的解释器:CPython。那一个解释器是用C语言开拓的,所以叫CPython。在指令行下运维python便是运转CPython解释器。

CPython是采用最广的Python解释器。教程的有着代码也都在CPython下试行。

IPython

IPython是基于CPython之上的一个交互式解释器,也便是说,IPython只是在交互格局上具备增加,可是试行Python代码的职能和CPython是一心一样的。好比好多进口浏览器纵然外观不一样,但根本其实都以调用了IE。

CPython用>>>作为提醒符,而IPython用In [序号]:作为提示符。

PyPy

PyPy是另三个Python解释器,它的对象是推行进程。PyPy选择JIT技术,对Python代码进行动态编写翻译(注意不是说明),所以能够一览无遗增加Python代码的实践进度。

多边Python代码都能够在PyPy下运作,可是PyPy和CPython有部分是例外的,那就变成同样的Python代码在三种解释器下实行恐怕会有分裂的结果。若是你的代码要放置PyPy下试行,就须求理解PyPy和CPython的不一样点。

Jython

Jython是运维在Java平台上的Python解释器,能够一直把Python代码编写翻译成Java字节码试行。

IronPython

IronPython和Jython类似,只但是IronPython是运作在微软.Net平台上的Python解释器,能够直接把Python代码编写翻译成.Net的字节码。

小结

Python的解释器许多,但利用最广大的照旧CPython。借使要和Java或.Net平台互相,最好的格局不是用Jython或IronPython,而是经过互连网调用来交互,确认保障各程序之间的独立性。

二、Python发展史

1九八陆年,为了消磨圣诞节日假期日,吉多起先写Python语言的编写翻译器。Python这一个名字,来自吉多所挚爱的TV剧Monty
Python’s Flying
Circus。他期望那么些新的称呼Python的言语,能符合他的上佳:制造壹种C和shell之间,作用健全,命理术数易用,可开始展览的言语。

1993年,第壹个Python编写翻译器诞生。它是用C语言实现的,并可以调用C语言的库文件。从一落地,Python已经颇具了:类,函数,至极管理,包涵表和词典在内的骨干数据类型,以及模块为底蕴的拓展系统。

Granddaddy of Python web frameworks, Zope 1 was released in 1999

Python 1.0 – January 1994
增加了lambda,map),filter)andreduce).

Python 贰.0 – October 16,
3000,参加了内部存款和储蓄器回收机制,构成了现行反革命Python语言框架的底蕴

Python 二.四 – November 30, 200四, 同年方今最流行的WEB框架Django 诞生

Python 2.5 – September 19, 2006

Python 2.6 – October 1, 2008

Python 2.7 – July 3, 2010

In November 2014, it was announced that Python 2.7 would be supported
until 2020, and reaffirmed that there would be no 2.8 release as users
were expected to move to Python 3.4+ as soon as possible

Python 3.0 – December 3, 2008

Python 3.1 – June 27, 2009

Python 3.2 – February 20, 2011

Python 3.3 – September 29, 2012

Python 3.4 – March 16, 2014

Python 3.5 – September 13, 2015

三、Python 2 or 3?

In summary : Python 2.x is legacy, Python 3.x is the present and
future of the language

Python 3.0 was released in 2008. The final 2.x version 2.7 release came
out in mid-2010, with a statement of

extended support for this end-of-life release. The 2.x branch will see
no new major releases after that. 3.x is

under active development and has already seen over five years of stable
releases, including version 3.3 in 2012,

3.4 in 2014, and 3.5 in 2015. This means that all recent standard
library improvements, for example, are only

available by default in Python 3.x.

Guido van Rossum (the original creator of the Python language) decided
to clean up Python 2.x properly, with less regard for backwards
compatibility than is the case for new releases in the 2.x range. The
most drastic improvement is the better Unicode support (with all text
strings being Unicode by default) as well as saner bytes/Unicode
separation.

Besides, several aspects of the core language (such as print and exec
being statements, integers using floor division) have been adjusted to
be easier for newcomers to learn and to be more consistent with the rest
of the language, and old cruft has been removed (for example, all
classes are now new-style, “range()” returns a memory efficient
iterable, not a list as in 2.x).

py2与三的详细差距

PRINT IS A FUNCTION

The statement has been replaced with a print() function, with keyword
arguments to replace most of the special syntax of the old statement
(PEP 3105). Examples:

+ View
Code

You can also customize the separator between items, e.g.:

1

print(“There are <“,2**32,”> possibilities!”, sep=””)

ALL IS UNICODE NOW

从此现在不再为厌恶的字符编码而闹心

还足以这么玩: (A,*REST,B)=RANGE(5)

1

2

3

4>>> a,*rest,b=range(5)

>>> a,rest,b

(0, [1,2,3],4)

好几库改名了

Old Name

New Name

_winreg

winreg

ConfigParser

configparser

copy_reg

copyreg

Queue

queue

SocketServer

socketserver

markupbase

_markupbase

repr

reprlib

test.test_support

test.support

再有何人不帮助PYTHON三?

One popular module that don’t yet support Python 3 is Twisted (for
networking and other applications). Most

actively maintained libraries have people working on 3.x support. For
some libraries, it’s more of a priority than

others: Twisted, for example, is mostly focused on production servers,
where supporting older versions of

Python is important, let alone supporting a new version that includes
major changes to the language. (Twisted is

a prime example of a major package where porting to 3.x is far from
trivial

四、Python安装

windows

1

2

3

4

5

6

7一、下载安装包

2、安装

暗中认可安装路线:C:\python27

3、配置情况变量

【右键Computer】–》【属性】–》【高端系统安装】–》【高端】–》【遭受变量】–》【在第三个内容框中找到
变量名字为Path 的壹行,双击】–> 【Python安装目录追加到变值值中,用 ;
分割】

如:原来的值;C:\python27,切记前边有分店

linux、Mac

1

2

三不须要安装,原装Python境况

ps:假使自带二.陆,请更新至2.七

五、Hello World程序

在linux 下创办1个文书叫hello.py,并输入

1

print(“Hello World!”)

下一场实践命令:python hello.py ,输出

1

2

3localhost:~ jieli$ vim hello.py

localhost:~ jieli$ python hello.py

Hello World!

钦赐解释器

上一步中执行 python hello.py 时,明确的建议 hello.py 脚本由 python
解释器来施行。

万一想要类似于执行shell脚本同样进行python脚本,例:./hello.py,那么就须要在
hello.py 文件的尾部内定解释器,如下:

1

2

3#!/usr/bin/env python

print”hello,world”

如此壹来,推行: ./hello.py就能够。

ps:实践前需给予 hello.py 实施权限,chmod 755 hello.py

在交互器中实施

除此而外把程序写在文书里,还是可以够直接调用python自带的交互器运营代码,

1

2

3

4

5

6localhost:~ jieli$ python

Python2.7.10(default,Oct232015,18:05:06)

[GCC4.2.1Compatible Apple LLVM7.0.0(clang-700.0.59.5)] on darwin

Type”help”,”copyright”,”credits”or”license”formore information.

>>>print(“Hello World!”)

Hello World!

相比较下其余语言的hello world

C++

金沙注册送58 36

C

金沙注册送58 37

JAVA

金沙注册送58 38

PHP

金沙注册送58 39

RUBY

金沙注册送58 40

Go

金沙注册送58 41

六、变量\字符编码

Variablesare used to store information to be referenced and
manipulated in a computer program. They also provide a way of labeling
data with a descriptive name, so our programs can be understood more
clearly by the reader and ourselves. It is helpful to think of variables
as containers that hold information. Their sole purpose is to label and
store data in memory. This data can then be used throughout your
program.

申明变量

1

2

3#_*_coding:utf-8_*_

name=”Alex Li”

上述代码表明了1个变量,变量名字为: name,变量name的值为:”亚历克斯 Li”

变量定义的条条框框:

变量名只好是 字母、数字或下划线的轻松组合

变量名的率先个字符不可能是数字

以下重点字不能够宣称为变量名

[‘and’, ‘as’, ‘assert’, ‘break’, ‘class’, ‘continue’, ‘def’, ‘del’,
‘elif’, ‘else’, ‘except’, ‘exec’, ‘finally’, ‘for’, ‘from’, ‘global’,
‘if’, ‘import’, ‘in’, ‘is’, ‘lambda’, ‘not’, ‘or’, ‘pass’, ‘print’,
‘raise’, ‘return’, ‘try’, ‘while’, ‘with’, ‘yield’]

变量的赋值

1

2

3

4

5

6

7

8name=”Alex Li”

name2=name

print(name,name2)

name=”Jack”

print(“What is the value of name2 now?”)

七、字符编码

python解释器在加载 .py 文件中的代码时,会对剧情开始展览编码(私下认可ascill)

ASCII(American Standard Code for Information
Interchange,U.S.行业内部音讯置换代码)是根据拉丁字母的一套Computer编码系统,主要用来展现今世土耳其共和国(The Republic of Turkey)语和任何西欧语言,其最两只可以用
捌 位来表示(四个字节),即:贰**八 = 25陆-1,所以,ASCII码最多只好表示
25伍 个暗号。

金沙注册送58 42

关于普通话

为了管理汉字,程序猿设计了用于简体中文的GB231二和用来繁体粤语的big伍。

GB231二(一九七八年)一共收音和录音了74四两个字符,蕴涵67陆1个汉字和6捌二个别的符号。汉字区的内码范围高字节从B0-F七,低字节从A一-FE,占用的码位是7二*玖四=676捌。个中有5个空位是D七FA-D七FE。

GB231二帮忙的方块字太少。19九⑤年的方块字扩大标准GBK一.0起用了218八五个暗号,它分为汉字区和图纸符号区。汉字区包蕴贰十0一个字符。三千年的
GB18030是代表GBK一.0的正规化国标。该标准收音和录音了274八十七个汉字,同时还引用了藏文、蒙文、维吾尔文等紧要的少数民族文字。今后的PC平台必须援助GB18030,对嵌入式产品暂不作要求。所以手机、MP肆相似只扶助GB231二。

从ASCII、GB2312、GBK
到GB18030,那一个编码方法是向下包容的,即同三个字符在这几个方案中总是有一致的编码,前边的正式帮衬更加多的字符。在那几个编码中,英文和汉语能够统一地拍卖。区分中文编码的点子是高字节的参天位不为0。依据技士的号称,GB231二、GBK到GB18030都属于双字节字符集
(DBCS)。

有个别普通话Windows的缺外省码还是GBK,能够通过GB18030进级包进级到GB18030。可是GB18030相对GBK扩展的字符,普普通通的人是很难用到的,平日我们仍然用GBK指代普通话Windows内码。

显明ASCII码无法将世界上的各个文字和符号整体表示,所以,就必要新出1种能够象征全数字符和标记的编码,即:Unicode

Unicode(统一码、万国码、单一码)是1种在管理器上选用的字符编码。Unicode
是为着消除古板的字符编码方案的局限而发生的,它为每种语言中的每一种字符设定了联合并且唯1的二进制编码,规定虽有的字符和符号最少由
1陆 位来代表(一个字节),即:贰 **16 = 65536,

注:此处说的的是最少1个字节,恐怕愈来愈多

UTF-八,是对Unicode编码的减弱和优化,他不再利用最少使用叁个字节,而是将有着的字符和标识举行归类:ascii码中的内容用一个字节保存、亚洲的字符用一个字节保存,南亚的字符用一个字节保存…

因而,python解释器在加载 .py
文件中的代码时,会对剧情举办编码(暗许ascill),要是是之类代码的话:

报错:ascii码无法表示普通话

1

2

3#!/usr/bin/env python

print”你好,世界”

校订:应该出示的告诉python解释器,用什么样编码来试行源代码,即:

1

2

3

4#!/usr/bin/env python

# -*- coding: utf-8 -*-

print”你好,世界”

注释

当行注视:# 被讲授内容

多行注释:””” 被疏解内容 “””

八、用户输入

1

2

3

4

5

6

7#!/usr/bin/env python

#_*_coding:utf-8_*_

#name = raw_input(“What is your name?”) #only on python 2.x

name=input(“What is your name?”)

print(“Hello “+name )

输入密码时,如若想要不可知,须求选取getpass 模块中的 getpass方法,即:

1

2

3

4

5

6

7

8

9

10#!/usr/bin/env python

# -*- coding: utf-8 -*-

importgetpass

# 将用户输入的始末赋值给 name 变量

pwd=getpass.getpass(“请输入密码:”)

# 打字与印刷输入的剧情

print(pwd)

玖、模块初识

Python的精锐之处在于他有10分丰盛和强劲的规范库和第二方库,差不多你想完成的任何意义都有对应的Python库援救,将来的课程中会浓密讲授常用到的各样库,以往,大家先来象征性的学3个大致的。

sys

1

2

3

4

5

6

7

8

9

10

11#!/usr/bin/env python

# -*- coding: utf-8 -*-

importsys

print(sys.argv)

#输出

$ python test.py helo world

[‘test.py’,’helo’,’world’]#把施行脚本时传递的参数获取到了

os

1

2

3

4

5

6#!/usr/bin/env python

# -*- coding: utf-8 -*-

importos

os.system(“df -h”)#调用系统命令

全盘结合一下

1

2

3importos,sys

os.system(”.join(sys.argv[1:]))#把用户的输入的参数作为一条命令交给os.system来实行

和煦写个模块

python tab补全模块

for mac

金沙注册送58 43

for Linux

金沙注册送58 44

写完保存后就足以选用了

1

2

3

4

5localhost:~ jieli$ python

Python2.7.10(default,Oct232015,18:05:06)

[GCC4.2.1Compatible Apple LLVM7.0.0(clang-700.0.59.5)] on darwin

Type”help”,”copyright”,”credits”or”license”formore information.

>>>importtab

你会开采,上边自个儿写的tab.py模块只可以在当前目录下导入,假若想在系统的何何三个地方都使用如何是好吧?
此时您将在把这一个tab.py放到python全局处境变量目录里呐,基本相似都坐落二个叫Python/贰.7/site-packages目录下,这一个目录在区别的OS里放的岗位不相同样,用print(sys.path)可以查看python蒙受变量列表。

10、.pyc是个什么样鬼?

1. Python是1门解释型语言?

本身初学Python时,听到的关于Python的首先句话正是,Python是一门解释性语言,小编就这么平素相信下去,直到开采了*.pyc文件的留存。假诺是解释型语言,那么生成的*.pyc文件是哪些吗?c应该是compiled的缩写才对呀!

为了防卫别的学习Python的人也被那句话误解,那么我们就在文中来戮穿谎话下这么些难点,并且把一些基础概念给理清。

二. 解释型语言和编译型语言

微机是不可以分辨高档语言的,所以当我们运营三个尖端语言程序的时候,就要求2个“翻译机”来从事把高端语言调换成Computer能读懂的机器语言的经过。那些进度分成两类,第叁种是编写翻译,第两种是表明。

编写翻译型语言在程序实行之前,先会通过编译器对程序试行3个编写翻译的长河,把程序转换成机器语言。运维时就不须要翻译,而直白实施就能够了。最非凡的事例正是C语言。

解释型语言就从未有过这些编写翻译的进度,而是在程序运转的时候,通过解释器对程序逐行作出解释,然后直接运行,最交口称誉的例子是Ruby。

由此上述的例子,大家得以来计算一下解释型语言和编写翻译型语言的利弊,因为编写翻译型语言在程序运转在此之前就已经对先后做出了“翻译”,所以在运营时就少掉了“翻译”的历程,所以作用比较高。可是我们也不可能比量齐观,一些解释型语言也得以经过解释器的优化来在对先后做出翻译时对全部程序做出优化,从而在功用上抢先编写翻译型语言。

其余,随着Java等依照虚拟机的语言的勃兴,我们又不能把语言纯粹地分为解释型和编译型那二种。

用Java来比喻,Java首先是经过编写翻译器编写翻译成字节码文件,然后在运作时通过解释器给解释成机器文件。所以我们说Java是1种先编写翻译后解释的语言。

叁. Python毕竟是哪些

其实Python和Java/C#1致,也是1门基于虚拟机的语言,大家先来从表面上海大学概地问询一下Python程序的周转进度吧。

当大家在命令行中输入python
hello.py时,其实是激活了Python的“解释器”,告诉“解释器”:你要开端专门的学问了。然则在“解释”在此之前,其实试行的率先项工作和Java同样,是编译。

深谙Java的同窗能够想转手大家在命令行中怎么着进行三个Java的次第:

javac hello.java

java hello

只是我们在用Eclipse之类的IDE时,将那两部给融入成了1部而已。其实Python也壹律,当大家实施python
hello.py时,他也1致实行了那样3个进度,所以大家应有那样来叙述Python,Python是壹门先编译后解释的语言。

四. 简述Python的运转过程

在说那几个标题以前,大家先来讲七个概念,PyCodeObject和pyc文件。

大家在硬盘上观望的pyc自然不用多说,而实质上PyCodeObject则是Python编写翻译器真正编写翻译成的结果。大家先简单明了就足以了,继续向下看。

当python程序运维时,编写翻译的结果则是保存在位于内部存款和储蓄器中的PyCodeObject中,当Python程序运转截至时,Python解释器则将PyCodeObject写回到pyc文件中。

当python程序第三遍运转时,首先程序会在硬盘中寻觅pyc文件,如若找到,则平素载入,不然就再也上边的进程。

故此我们应有那样来恒定PyCodeObject和pyc文件,大家说pyc文件其实是PyCodeObject的一种持久化保存方法。

十一、数据类型初识

1、数字

二 是一个平头的事例。

长整数 可是是大片段的整数。

三.贰叁和5二.3E-4是浮点数的事例。E标志表示10的幂。在那边,5二.叁E-四象征5二.三 *
10-4。

(-伍+四j)和(二.3-肆.陆j)是复数的例证,在那之中-5,四为实数,j为虚数,数学中象征复数是怎么样?。

int(整型)

在三11个人机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647

在陆十七位系统上,整数的位数为6十六个人,取值范围为-贰**63~2**63-1,即-9223372036854775808~9223372036854775807

long(长整型)

跟C语言分化,Python的长整数未有点名位宽,即:Python未有限定长整数数值的尺寸,但实在由于机械内部存款和储蓄器有数,我们选取的长整数数值不恐怕Infiniti大。

只顾,自从Python二.贰起,假如整数产生溢出,Python会自动将整数数据变换为长整数,所以今后在长整数数据背后不加字母L也不会促成严重后果了。

float(浮点型)

先扫盲 

浮点数用来拍卖实数,即包含小数的数字。类似于C语言中的double类型,占几个字节(6二十个人),个中5几位代表底,11位代表指数,剩下的一人表示符号。

complex(复数)

复数由实数部分和虚数部分构成,一般方式为x+yj,在那之中的x是复数的实数部分,y是复数的虚数部分,这里的x和y都是实数。

注:Python中设有小数字池:-5 ~ 二57

2、布尔值

真或假

1 或 0

3、字符串

“hello world”

万恶的字符串拼接:

python中的字符串在C语言中反映为是3个字符数组,每一遍成立字符串时候要求在内部存款和储蓄器中开荒一块连续的空,并且只要需求修改字符串的话,就须求再行开拓空间,万恶的+号每出现一次就能在内从中重新开采一块空间。

字符串格式化输出

1

2

3

4name=”alex”

print”i am %s “%name

#输出: i am alex

PS: 字符串是 %s;整数 %d;浮点数%f

字符串常用作用:

移除空白

分割

长度

索引

切片

4、列表

始建列表:

1

2

3name_list=[‘alex’,’seven’,’eric’]

name_list =list([‘alex’,’seven’,’eric’])

基本操作:

索引

切片

追加

删除

长度

切片

循环

包含

五、元组(不可变列表)

创办元组:

1

2

3ages=(11,22,33,44,55)

ages=tuple((11,22,33,44,55))

6、字典(无序)

制造字典:

1

2

3person={“name”:”mr.wu”,’age’:18}

person=dict({“name”:”mr.wu”,’age’:18})

常用操作:

索引

新增

删除

键、值、键值对

循环

长度

拾二、数据运算

算数运算:

金沙注册送58 45

相比较运算:

金沙注册送58 46

赋值运算:

金沙注册送58 47

逻辑运算:

金沙注册送58 48

成员运算:

金沙注册送58 49

身份运算:

金沙注册送58 50

位运算:

金沙注册送58 51

+ View
Code

\按位取反运算规则(按位取反再加一)  
详解

运算符优先级:

金沙注册送58 52

越来越多内容:碰撞这里

十三、表达式if … else

场景一、用户登入验证

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20# 提示输入用户名和密码

# 验证用户名和密码

#     假使不当,则输出用户名或密码错误

#     假若成功,则输出 接待,XXX!

#!/usr/bin/env python

# -*- coding: encoding -*-

importgetpass

name=raw_input(‘请输入用户名:’)

pwd=getpass.getpass(‘请输入密码:’)

ifname==”alex”andpwd==”cmd”:

print(“欢迎,alex!”)

else:

print(“用户名和密码错误”)

场景二、猜年龄游戏

在程序里设定好你的年龄,然后运营程序让用户猜想,用户输入后,根据她的输入提醒用户输入的是还是不是科学,假使不当,提醒是猜大了照旧小了

+ View
Code

金沙注册送58,外层变量,能够被内层代码应用

内层变量,不应被外层代码应用

十四、表达式for loop

最简便易行的巡回13遍

1

2

3

4

5

6#_*_coding:utf-8_*_

__author__=’Alex Li’

foriinrange(10):

print(“loop:”, i )

输出:

1

2

3

4

5

6

7

8

9

10loop:0

loop:1

loop:2

loop:3

loop:4

loop:5

loop:6

loop:7

loop:8

loop:9

须要1:依然地点的先后,不过遭逢小于5的巡回次数就不走了,直接跳入下贰遍巡回

1

2

3

4foriinrange(10):

ifi<5:

continue#不往下走了,直接进去下二次loop

print(“loop:”, i )

须要2:依然地点的次序,可是遇到当先伍的巡回次数就不走了,直接退出

1

2

3

4foriinrange(10):

ifi>5:

break#不往下走了,直接跳出整个loop

print(“loop:”, i )

十五、while loop

有1种循环叫死循环,一经触发,就运维个天荒地老、山盟海誓。

山势海盟代码

1

2

3

4

5count=0

whileTrue:

print(“你是风儿作者是沙,缠缠绵绵到天涯…”,count)

count+=1

实际重3了岁月,未有怎么是原则性的,死loop仍旧少写为好

上边包车型地铁代码循环玖17遍就退出吧

+ View
Code

回来地点for
循环的例子,怎么样落到实处让用户不断的猜年龄,但只给最多3遍机遇,再猜不对就退出程序。

+ View
Code

十六、作业

作业一:博客

学业2:编写登入接口

输入用户名密码

申明成功后呈现接待音讯

输错壹回后锁定

学业3:多级菜单

三级菜单

可依次选择进入各子菜单

所需新知识点:列表、字典

入门知识10遗

一、bytes类型

贰、三元运算

1

result=值1if条件else值2

比如条件为真:result = 值1

1旦条件为假:result = 值贰

三、进制

二进制,01

八进制,01234567

十进制,0123456789

十六进制,0123456789ABCDEF
 2进制到16进制转变

微型Computer内部存款和储蓄器地址和怎么用16进制?

为啥用1陆进制

壹、Computer硬件是0十一2进制的,16进制刚好是2的翻番,更便于表明叁个命令或然数额。十6进制更轻松,因为换算的时候一人1陆进制数能够顶多少人二进制数,也正是三个字节(七个人进制可以用多个1陆进制表示)

二、最早规定ASCII字符集选用的正是八bit(中期扩充了,不过基础单位还是八bit),八bit用3个1陆进制间接就会表明出来,不管阅读依旧存款和储蓄都比别的进制要有利

三、Computer中CPU运算也是依照ASCII字符集,以1陆、3贰、64的那样的措施在升高,由此数据交流的时候1陆进制也出示越来越好

肆、为了统一标准,CPU、内部存款和储蓄器、硬盘大家看到都以采纳的1陆进制计算

1陆进制用在哪儿

一、网络编制程序,数据交流的时候须要对字节实行剖析都以1个byte三个byte的管理,三个byte能够用0xFF八个1陆进制来表明。通过网络抓包,能够看看数据是经过1陆进制传输的。

贰、数据存款和储蓄,存储到硬件中是010壹的主意,存款和储蓄到系统中的表明形式都是byte格局

三、一些常用值的定义,比方:大家平常利用的html中color表明,正是用的1陆进制情势,5个1陆进制位能够表明好几百万的颜料信息。

4、 一切皆对象

对此Python,一切事物都以目的,对象基于类创造

金沙注册送58 53

之所以,以下那一个值都以目的: “wupeiqi”、38、[‘北京’, ‘上海’,
‘深圳’],并且是基于不一致的类生成的对象。

金沙注册送58 54

金沙注册送58 55

金沙注册送58 56

相关文章

网站地图xml地图