Python基础学习篇章三
一. Python对象类型
1. 对象是Python最基本的概念,一个Python程序可以分解为模块、语句、表达式、和对象。它们的关系如下:(1)程序由模块构成
(2)模块包含语句
(3)语句包含表达式
(4)表达式建立并处理对象
2. Python核心数据类型(内置对象)
(1)数字 324,3.1415,992L,3+4j,Decimal
(2)字符串 'string','hello'
(3)列表 [2, [3, 'world'], 4]
(4)字典 {'name': 'bob', 'taste': 'yum'}
(5)元组 (23, 'so', 'kej', 34)
(6)文件 myfile = open('eggs', 'r')
(7)其他类型 None,集合,布尔型
3. 一旦创建了一个对象,它就和操作集合绑定了----只可以对字符串进行字符串相关的操作,对列表进行列表相关的操作。Python是动态类型的(能自动的跟踪数据类型而不是要求声明代码),它也是强类型语言(你只能对一个对象进行有效的操作)。
4. 下面是对以上数据类型的具体介绍:
(1)数字
Python中的数字类型又细分为整数,浮点数,无限精度‘长’整形,有虚部的复数,固定精度的十进制数以及集合等。另外还有一些常用的数学模块:math模块,random模块(数字随机生成和随机选择)等。

(2)字符串
字符串是在Python中作为序列(一个包含其他对象的有序集合)提到的第一个例子。序列中的元素包含了一个从左到右的顺序----序列中的元素根据它们的相对位置进行存储和读取。作为序列,字符串有一些操作,比如可以通过内置函数len来获取其长度,通过索引得到字符串中的各个元素(类似PHP中获取索引数组的元素)。值得注意的是,Python支持反响索引!这里有个规律:一个负的索引与字符串的长度相加,得到的操作是等效的! 另外序列也支持分片(slice)的操作(个人理解类似于PHP中的字符串截取,只不过语法和叫法不同)。分片的基本语法形式是这样的:X[I:J] 表示“取出在X中从偏移为I,直到但不包括J的内容”。在一个切片中,左边界默认为0,右边界默认为分片序列的长度。因此产生了以下的等效结果:
str[1:] ---- str[1:len(str)], str[:3] ---- str[0:3], str[:] ---- 获取整个字符串

作为序列,字符串也支持合并,使用+号可以使两个字符拼接到一块儿,同同时也可以重复,使用*号

注意: 字符串具有不可变性。比如你不能通过对其某一位置进行赋值而改变字符串。但是你可以通过建立一个新的字符串并以同一个变量名对其进行赋值。因为Python在运行过程中会清理旧的对象。

在Python中的每一个对象都可以分为可变性和不可变性。在核心类型中,数字、字符串、和元组是不可变的,列表和字典是可变的。以上的长度获取,元素获取,切片操作等是序列的通用操作,即上面的操作也能用于列表和元组序列。Python中针对每种数据类型都有其特定的方法。这里有一条法则:可作用于多种类型的通用型操作都是以内置函数或表达式的形式出现的(比如,len(X), X[0]),但是类型特定的操作的事以方法调用的形式出现的(比如str.upper())!
要想知道一个对象都有哪些方法,可以使用内置dir函数,比如dir(str)

想要知道每个方法有什么作用可以使用help(str.find)这种形式来获取:

Python允许字符串包括在单引号或双引号中,也能够在三个引号(单引号或双引号)中表示多行字符串的形式。当使用这种形式时,所有的行都合并在一起,并在每一行的末尾增加了换行符。

还有一点比较重要:字符串对象的方法支持基于模式的文本处理,就是这里所说的模式匹配。我们需要导入一个名为re的模块。这个模块包含了类似搜索、分割和替换等调用。


(3)列表
Python的列表对象是这个语言提供的最通用的序列。列表是一个任意类型的对象的位置相关的有序集合,它没有固定的大小。在字符串上使用的序列操作,在这就不再叙述。Python的列表很像PHP中的数组,但是列表要强大的多。列表没有固定类型的约束。下面来看看类型特有的操作:

使用dir()内置函数:

上面列举的append(),pop()方法的作用分别是向列表list追加元素,和删除某个位置的元素,后者会返回被删除的元素。
列表的边界检查:Python不允许引用不存在的元素。请看下面的操作:

Python只允许修改列表索引范围内的元素!想要增大列表,可以使用append方法或insert方法。

嵌套:Python核心数据类型的一个特性就是它们支持任意的嵌套。能够以任意的组合对其进行嵌套(让列表包含一个字典,并在字典中包含另一个列表等)。这种特性的一个直接应用就是实现矩阵或者Python中的“多维数组”。

上面的效果就表现了一个3*3的数字矩阵。也可以通过多种方法获取其中的元素:

列表解析:这是处理列表的一个更高级的操作,加入我们想从矩阵中取出第二列,可以这样做:

列表解析源自集合的概念。是一种通过在一个序列中运行一个表达式而创建的一个新列表。列表解析编写在方括号中(提醒你在创建列表这个事实),并且有表达式和循环结构,也使用了变量(raw)。
(4)字典
Python中的字典不是序列,而是一种映射。映射是一个其他对象的集合,它们是通过键而不是相对位置来存储的。映射没有任何可靠的从左至右的顺序。只是简单的将键映射到值。字典是Python核心对象集合中对的唯一的一种映射类型。具有可变性,也可以随需求增大或减小。
映射操作:字典编写在大括号中,包含了一系列的 “键:值” 对。可以通过索引的方法取出字典中的元素值。
字典的编写方式有两种:D = {'name':'liu', 'sex':'boy', 'age':20}或者 D = {} D['name'] = 'liu' D['sex'] = 'boy' D['age'] = 20.代码如下:

Python基础学习篇章三的更多相关文章
- Python基础学习(三)
了解了Python的基础使用,接下来继续练手廖雪峰老师的教学案例. 一.变量可以指向函数 说明,一个函数可以赋值给一个变量,该变量就会具有该函数的功能,举例: gg = abs print( gg(- ...
- python基础学习篇章一
一. 对Python的认识 1. Python的标准实现方式是将源代码的语句编译为字节码的形式,之后再将字节码解释出来.由于字节码是一种与平台无关的形式,字节码具有可移植性.但是Python没有将代码 ...
- Python基础学习篇章二
一. Python如何运行程序 1. 在交互模式下编写代码 最简单的运行Python程序的方法是在Python交互命令行中输入程序.当然有很多方法可以开始这样的命令行,比如IDE,系统终端.如果你已经 ...
- Python基础学习篇章四
一. Python数据类型之字典 1. 键的排序:for循环 由于字典不是序列,因此没有可靠的从左至右的顺序.这就导致当建立一个字典,将它打印出来,它的键也许会以与我们输入时的不同的顺序出现.有时候我 ...
- python基础学习(三)变量和类型
变量的作用:变量就是用来存储数据的. 变量的定义 在python中,变量在使用之前需要进行赋值,变量只有赋值后才能使用,如果变量没有赋值就使用会出现什么情况呢?如下图,使用之前变量未定义,会报错,如下 ...
- Python基础学习总结(三)
4.if语句 If语句可以检查判定当前条件,并执行相应措施. if a in A: if a 条件: 执行命令1 4 else: 执行命令2 if判断条件还可以简写 if x: print('True ...
- python基础学习第三天
#变量存储在内存中的值.这就意味着在创建变量时会在内存中开辟一个空间#基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中#变量可以指定不同的数据类型,这些变量可以存储整数.小数 ...
- Python基础学习三
Python基础学习三 1.列表与元组 len()函数:可以获取列表的元素个数. append()函数:用于在列表的最后添加元素. sort()函数:用于排序元素 insert()函数:用于在指定位置 ...
- Day1 Python基础学习
一.编程语言分类 1.简介 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 汇编语言:站在计算机的角度,简写的英文标识符取代二进制去编写程序,本质仍然是直接操作 ...
随机推荐
- 微信小程序基于腾讯云对象存储的图片上传
在使用腾讯云对象存储之前,公司一直使用的是传统的FTP的上传模式,而随着用户量的不断增加,FTP所暴露出来的问题也越来越多,1.传输效率低,上传速度慢.2.时常有上传其他文件来攻击服务器,安全上得不到 ...
- Activity 与 springMvc相整合
准备环境: springMvc框架及Activity所需要的jar: 创建spring-activity.xml文件,里面内容: <?xml version="1.0" en ...
- 功能性AI术语表
算法:一套计算机要遵循的指令.一个算法可以是一个简单的单步程序也可以是一个复杂的神经网络,但是通常被用来指一个模型. 人工智能:这是一个统称.广义上说,软件意味着模仿或取代人类智能的各个方面.人工智能 ...
- c++趣味之shared_ptr额外好处
shared_ptr(sp)额外好处是什么?即使被转为基类,析构函数也可以正常执行. 已知两个类 class foo{}; class bar:foo{public:~bar(){}}; 先来看不用s ...
- 巧用linux版powershell,管理linux下的docker
大家好,我把用powershell的docker马甲命令的好处,放在了页面下方,从第五章开始. powershell 传教士 原创文章 始于 2017-09-07 允许转载,但必须保留名字和出处,否则 ...
- 浅谈XAML控件
在win10系统内简单使用了XAML控件,由于本人英语水平有限,在自己的摸索使用.分析代码以及翻译软件.搜索引擎.室友情的帮助下了解了控件的相关功能,下面简要对XAML控件提出几点建议: 1.Cale ...
- Algorithm --> 二进制中1的个数
行文脉络 解法一——除法 解法二——移位 解法三——高效移位 解法四——查表 扩展问题——异或后转化为该问题 对于一个字节(8bit)的变量,求其二进制“1”的个数.例如6(二进制0000 0110) ...
- c++ --> static关键字总结
static关键字总结 C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static.前者应用于普通变量和函数,不涉及类:后者主要说明static在类中的作用. ...
- STL --> list用法
List介绍 Lists将元素按顺序储存在链表中.与 向量(vectors)相比, 它允许快速的插入和删除,但是随机访问却比较慢. assign() // 给list赋值 back() // 返回最后 ...
- html5 geolocation配合百度地图api实现定位
1.了解html5 geolocation HTML5 Geolocation(地理定位)用于定位用户的位置.鉴于该特性可能侵犯用户的隐私,除非用户同意,否则用户位置信息是不可用的.=> 使用时 ...