发展历史Python学习笔记_01:基本概念介绍

style=”font-size: 18pt;”>目录

style=”font-size: 14pt;”>1.Python言语简介

style=”font-size: 14pt;”>2.Python遭经常因此数据结构

style=”font-size: 18px;”>2.1呀是列表?

style=”font-size: 18px;”>2.2哟是元组?

style=”font-size: 18px;”>2.3什么是字典?

style=”font-size: 18px;”>2.4寻觅引及分片

style=”font-size: 14pt;”>3.其它基本概念

style=”font-size: 18px;”>3.1数据类型和变量

style=”font-size: 18px;”>3.2生成器

style=”font-size: 18px;”>3.3迭代器

style=”font-size: 18px;”>3.4模块

 

 


1.Python言语简介

进步历史:

 
Python是由Guido van
Rossum在八十年代末和九十年代初,在荷兰江山数学和计算机是研究所设计出来的。

  Python
本身为是由许多其它语言发展要来的,这包
ABC、Modula-3、C、C++、Algol-68、SmallTalk、Unix shell
和任何的脚本语言等等。

 
像Perl语言一样, Python 源代码同样以 GPL(GNU General Public
License)协议。

 
现在Python是出于一个中心开发组织在保护,,Guido van Rossum
还占有着重大的企图,指导其开展。

 

特点:

 
Python是一样栽解释型的、面向对象的、带有动态语义的高级程序设计语言。

 
完成和一个任务,C语言要描绘1000行代码,Java就需要写100推行,而Python可能要20履行。

 

功能:

 
用Python可以做呀?可以做一般任务,比如自动备份你的MP3;可以做网站,很多名牌的网站包括YouTube就是Python写的;可以做网络游戏的后台,很多在线娱乐的后台还是Python开发之。总之就是是会干多博转业呀。

 
Python当然为时有发生不可知干的事务,比如写操作系统,这个只能用C语言写;写手机采用,只能用Swift/Objective-C(针对iPhone)和Java(针对Android);写3D游戏,最好用C或C++。

 

切开发哪些项目应用也?

 
首选是网络利用,包括网站、后台服务等等;

 
其次是成千上万一般需要之有点器,包括系统管理员需要的本子任务等等;

 
另外就是是将其余语言开发的次第还包起来,方便使用。

 
许多大型网站便是故Python开发之,例如YouTube、Instagram,还有国内的豆瓣。很多可怜公司,包括Google、Yahoo等,甚至NASA(美国航空航天局)都大方地动用Python。

 

缺点:

 
第一个短就是运行速度放缓,和C程序相比老缓慢,因为Python是解释型语言,你的代码在尽时见面一行一行地翻成CPU能知晓的机器码,这个翻译过程十分耗时,所以非常缓慢。而C程序是运作前一直编译成CPU能实行的机器码,所以那个抢。

 
第二单缺陷就是是代码不克加密。如果如颁布你的Python程序,实际上即便是发布源代码,这无异触及与C语言不同,C语言不用发布源代码,只需要把编译后底机器码(也即是你在Windows上大的xxx.exe文件)发布出来。要起机器码反出C代码是不容许的,所以,凡是编译型的言语,都无此问题,而解释型的言语,则必须将源码发布出来。

 

 


2.Python惨遭常因此数据结构

2.1哟是列表?

   
List(列表) 是 Python 中应用最累之数据类型。

 列表可以形成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至好涵盖列表(所谓嵌套)。

 列表用[
]标识。是python最通用的复合数据类型。看就段代码就了解。

 列表中之值得分割为足以据此到变量[头下标:尾下标],就可以截取相应的列表,从左到右索引默认0开始之,从右到左索引默认-1开始,下标可以为空表示收获到头或尾。

 

 
加号(+)是列表连接运算符,星号(*)是重操作。如下实例:

 #!/usr/bin/python
 # -*- coding: UTF-8 -*-

 list = [ 'abcd', 786 , 2.23, 'john', 70.2 ]
 tinylist = [123, 'john']

 print list # 输出完整列表
 print list[0] # 输出列表的第一个元素
 print list[1:3] # 输出第二个至第三个的元素 
 print list[2:] # 输出从第三个开始至列表末尾的所有元素
 print tinylist * 2 # 输出列表两次
 print list + tinylist # 打印组合的列表

 

   
以上实例输出结果:

 ['abcd', 786, 2.23, 'john', 70.2]
 abcd
 [786, 2.23]
 [2.23, 'john', 70.2]
 [123, 'john', 123, 'john']
 ['abcd', 786, 2.23, 'john', 70.2, 123, 'john']

 

 

2.2啊是元组?

 
元组是其余一个数据类型,类似于List(列表)。

 
元组用”()”标识。内部因素用逗号隔开。但是元素不克二次于赋值,相当给仅仅念列表。

 #!/usr/bin/python
 # -*- coding: UTF-8 -*-

 tuple = ( 'abcd', 786 , 2.23, 'john', 70.2 )
 tinytuple = (123, 'john')

 print tuple # 输出完整元组
 print tuple[0] # 输出元组的第一个元素
 print tuple[1:3] # 输出第二个至第三个的元素 
 print tuple[2:] # 输出从第三个开始至列表末尾的所有元素
 print tinytuple * 2 # 输出元组两次
 print tuple + tinytuple # 打印组合的元组

 

   以上实例输出结果:

('abcd', 786, 2.23, 'john', 70.2)
 abcd
 (786, 2.23)
 (2.23, 'john', 70.2)
 (123, 'john', 123, 'john')
 ('abcd', 786, 2.23, 'john', 70.2, 123, 'john')

 

  
以下是元组无效的,因为元组是休同意更新的。而列表是允许更新的:

#!/usr/bin/python
 # -*- coding: UTF-8 -*-

 tuple = ( 'abcd', 786 , 2.23, 'john', 70.2 )
 list = [ 'abcd', 786 , 2.23, 'john', 70.2 ]
 tuple[2] = 1000 # 元组中是非法应用
 list[2] = 1000 # 列表中是合法应用

 

 

2.3啊是字典?

 
字典(dictionary)是除了列表以外python之中最灵敏的放置数据结构类型。列表是平稳的目标成,字典是无序的靶子集合。

 
两者之间的别在:字典当中的因素是经键来存取的,而未是由此摇存取。

 
字典用”{ }”标识。字典由索引(key)和其对应的值value组成。

 #!/usr/bin/python
 # -*- coding: UTF-8 -*-

 dict = {}
 dict['one'] = "This is one"
 dict[2] = "This is two"

 tinydict = {'name': 'john','code':6734, 'dept': 'sales'}


 print dict['one'] # 输出键为'one' 的值
 print dict[2] # 输出键为 2 的值
 print tinydict # 输出完整的字典
 print tinydict.keys() # 输出所有键
 print tinydict.values() # 输出所有值

 

2.4搜寻引及分片

索引:列表或者元组中的备因素都是发出编号的——从0开始递增。这些要素得以通过编号分别走访,如下图所示:

>>> greeting = ‘Hello’

>>> greeting[0]

‘H’

 

 
可以经索引获取元素。所有列表或者元组可以由此这种方法展开索引。使用负数索引时,就是由列表最后一个要素开始计数,倒数第一啊-1,倒数第二单吗-2,依次以负数大小从右侧为左绝对值大小递增编号。

 

分片:与使用索引来访问单个元素看似,可以下分片操作来访问必将限制外之素。分片通过冒号隔开的有数只寻引来实现:

>>> numbers = [1,2,3,4,5,6,7,8,9,10]

>>> numbers[3:6]

[4,5,6]

>>> numbers[0:1]

[1]

 

 
简而言之,分片操作的实现内需提供简单只目录作为边界,第1独目录的素是包含在分片内的,而第2只则未收拾含在分片内。

 

 


3.别样基本概念

3.1数据类型和变量

数据类型:

 
以内存中存储的数据可发多种类型。

 
例如,person.s年龄当一个数值存储和他要其底地址是字母数字字符存储。

   
 Python有一对正式项目用于定义操作上,他们与为她们每个人之贮存方可能。

   
 Python有五个标准的数据类型:

  Numbers(数字)

  String(字符串)

  List(列表)

  Tuple(元组)

  Dictionary(字典)

变量:

     
Python中的变量不待声明,变量的赋值操作既是变量声明与概念之进程。

 
每个变量在内存中开创,都不外乎变量的标识,名称与数目这些信。

 
每个变量在动用前都不能不赋值,变量赋值以后该变量才见面为创造。

 
等号(=)用来给变量赋值。

 
等号(=)运算符左边是一个变量叫,等号(=)运算符右边是储存在变量中之价值。

 

3.2生成器

 
通过列表生成式,我们好直接创造一个列表。但是,受到内存限制,列表容量肯定是零星的。而且,创建一个暗含100万单要素的列表,不仅占用很死的蕴藏空间,如果我们特需要拜访前几只元素,那背后绝大多数元素占用的空中都白白浪费了。

 
所以,如果列表元素得以随某种算法推算出来,那我们是不是足以于循环的经过遭到不停推算出后续之素也?这样尽管无需创建完整的list,从而省去大量底空间。在Python中,这种单方面循环一边盘算的体制,称为生成器:generator。

 

3.3迭代器

 
可以直接作用被for循环的数据类型有以下几种植:

 
一好像是集聚数据类型,如list、tuple、dict、set、str等;

 
一近似是generator,包括生成器和带yield的generator function。

 

 
这些可一直作用被for循环的靶子统称为而迭代对象:Iterable。

 
而生成器不但可以作用为for循环,还可以给next()函数不断调用并回下一个价,直到最后抛来StopIteration错误表示爱莫能助持续回来下一个价值了。

 
可以于next()函数调用并连发返回下一个价的靶子称为迭代器:Iterator。

 
生成器都是Iterator对象,但list、dict、str虽然是Iterable(是只是迭代对象),却不是Iterator。

 
凡是可图被for循环的目标都是Iterable类型;

 
凡是可图为next()函数的目标都是Iterator类型,它们表示一个惰性计算的行;

 
集合数据类型如list、dict、str等是Iterable但无是Iterator,不过好透过iter()函数获得一个Iterator对象。

 

3.4模块

 
模块于你能够发生逻辑地集团而的Python代码段。

 
将相关的代码分配至一个 模块里能被你的代码更好用,更便于亮。

 
模块也是Python对象,具有自由的名属性用来绑定或引用。

 
简单地游说,模块就是一个保留了Python代码的文件。模块能定义函数,类及变量。模块里啊克包含可实施的代码。

 

 

发展历史参考资料:

1.http://www.shouce.ren/api/view/a/4615

2.https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注