Python对象类型

Python进阶(二)——Python对象类型

上一章中我们主要讲了Python的安装与Python基本命令行,IDLE的应用。本章中我们将讲述Python的对象类型,包括数字、字符串、列表、字典、元组、文件以及用户自定义类对象。



1.总览——Python程序可以分解为模块、语句、表达式和对象

  • 程序有模块构成(模块的概念上一章中提过)
  • 模块包含语句
  • 语句包含表达式
  • 表达式建立并处理对象

2.Python核心数据类型

表2.1  Python内置对象类型

以上是Python内置对象基本类型,当然不完全。比如我们在编写网络脚本时,可以使用套接字对象,其他类型的对象往往通过导入或使用模块建立。

我们将表2.1中所列类型为Python核心类型。

有一点需要注意:

python中没有类型声明(这点有点儿像matlab),运行的表达式决定了建立对象的类型

在表2.1中有两个特殊的类型,一个是列表[],一个是字典{},列表提供了其他对象的有序集合,而字典是通过键值存储对象的(类似STL::map),列表和字典都可以实现嵌套,后面会讲。

3.Python数据类型——数字

  • 一般地数学操作和matlab中没有什么区别:
[cpp] view plaincopy
  1. 123+222
  2. 345
  3. >>> 2**100
  4. 1267650600228229401496703205376L
  5. >>> 3.1415*2
  6. 6.283
  7. >>> print 3.1415*2
  8. 6.283
  • 这里注意一下第二个命令2**100(2的100次方),结果显示的时候最后出来的L是由于类型强制转换为long(长整型)
  • 除了表达式,python还可以导入一些常用的数学模块,比如math和random:
[cpp] view plaincopy
  1. >>> import math
  2. >>> math.pi
  3. 3.141592653589793
  4. >>> math.sqrt(85)
  5. 9.219544457292887
  6. >>>
  7. >>> import random
  8. >>> random.random()#随机生成一个数字in[0,1]
  9. 0.13332430829199282
  10. >>> random.choice([1,2,3,4])#在列表1,2,3,4中随机选一个
  11. 2
  • 这里呢,提醒一下大家,在Python IDLE和 Python Shell中敲math.xxx是出不来提示的,而pythonwin中会有提示,类似C++封装好的类:

  • 除此之外,Python还包含负数、固定精度十进制数、集合等数据、、数字类型,还有第三方开源扩展领域包含矩阵和向量等类型,感兴趣的朋友可以查查看。

4.Python数据类型——字符串

  • python中,字符串是一个单个字符的串序列,其他序列类型还有列表和元组。
  • 以下是python中对字符创的常见操作:

  • Python的字符串操作有个特点,你不能通过对某一位进行赋值而改变字符串,但可以通过建立一个新字符串并以同一个变量名对其赋值。因为Python会自动清理旧的对象,如下图所示:

  • 除此之外还有一些类型特定的方法,如replace, find方法

  • 这里,因为字符串具有不可变性,因此replace操作并不会改变该字符串,而是创建一个新的字符串作为结果。

  • 这里要提醒下,尽管序列操作是通用的,但方法不通用(字符串方法只能用于字符串操作)。
  • 对于字符串的其他方法呢,我们可以用上一章中讲过的dir()函数和help( )函数:
  • dir函数给出了所有方法的名称:

  • help函数给出了每个函数的具体definition:

  • 小技巧:python字符串有一个语法,在一对 三个单引号(or双引号)之间的内容保持其格式。好熟悉的方法?是的!类似HTML中的<pre>标签:

  • 模式匹配,需要引入re模块:

  • 这里大家请看match函数,其第一部分定义了模式,后一部分是要匹配的文本content。
  • 比如这个模式match = re.match('Hello[\t]*(.*)world','HelloPython world'),就是以Hello开头,连上n个'\t',再接着任意字符并将其保存至匹配的group中,最后以‘world’结尾的模式在'Hello Python world'中匹配的结果。

5.Python数据类型——列表

  • python列表是一个与任意类型的对象位置相关的有序集合。列表最大的特点就是,没有固定类型的约束:

  • 特定类型的操作:与string不同,list是可变的(相对于字符串的不可变性而言),但是有的方法是有针对性类型的,比如append函数只接受字符串:

  • 列表嵌套

  • 列表解析

6.Python数据类型——字典

  • 首先看一下字典的一般赋值方式:

  • 嵌套:

  • 键的排序:for循环

  • 迭代:
  • if测试:

在后面我们还会讲try语句,一个捕获并从异常中恢复的语句

7.Python数据类型——元组

元组的最大特点是不可变,换言之,元组是不可变的序列。

元组得不可变性约束决定了某些特定安全性要求下可以使用。

8.Python数据类型——文件

  • Python中的文件创建与编辑方式:

  • 此时桌面上创建了一个a.txt:

  • python默认文件打开方式为读'r',并可读取文件内容如下:

  • 当然,除了open函数,python还有高级的文件类工具:pipes、fifos、sockets、keyed-access files等。例如文件描述符(descriptor file)支持文件锁定和其他底层工具,而sockets提供网络和进程间接口。

9.用户自定义类

一个简单的用户自定义类,有相应的attribute和method:

  • 类中成员默认类型是public的(虽然python中我们还没有介绍成员变量的类型),“self”对象时我们把这叫做面向对象模型的原因,即一个函数总有一个隐含的对象,这和C++非常相似。

Python对象类型相关推荐

  1. python 对象类型有哪些?

    python 强大的内置类型让我接触到python的时候开始慢慢的喜欢上它了,感觉既方便又好用,下面我们先一起学习下内置对象类型的好处: 1内置对象能够使得我们编写程序更容易. 2内置的对象效率更高, ...

  2. Python对象类型及相关操作

    文章目录 Python对象类型 对象操作函数 1.数字类型 常用的算术运算符: 数字运算相关的内置函数: math模块中的常用函数: 2.字符串 1.字符编码 2.字符串表示 3.转义字符串 4.字符 ...

  3. Python对象类型——字符串、列表、元组

    字符串 Python连接多个字符串可用"+"号,但这个操作不如把所有子字符串放到一个列表或可迭代对象中,然后调用一个join方法来把所有内容连接在一起节约内存. 原始字符串操作符( ...

  4. python对象类型及其运算 数字 字符串 list dict tupe dict

    python内置对象的类型及其所支持的运算 我们在编程时为什么要使用内置对象类型,以及我们在编程时尽可能使用自定义类型呢还是但凡有可能都去使用内置类型.很显然,对于python而言,内置类型更容易理解 ...

  5. 第4章 介绍Python对象类型

    看前须知 这里对本书中提到的不常见的内容进行了查证,举例,所以大家可以不用再费神去搜索相关内容 在Python中,我们运用"材料"来处理"事务". 材料:操作对 ...

  6. 《Python 学习手册4th》 第四章 介绍Python对象类型

    ''' 时间: 9月5日 - 9月30日 要求: 1. 书本内容总结归纳,整理在博客园笔记上传 2. 完成所有课后习题 注:"#" 后加的是备注内容(每天看42页内容,可以保证月底 ...

  7. 类型列表Python 学习手册 第二部分 类型与运算 第4章 介绍Python对象类型

    这几周一直在查找类型列表之类的问题,上午正好有机会和大家讨论一下. 第二分部 类型与算运   第四章 绍介Python象对类型   形成: 象对 --> 表达式 --> 语句 --> ...

  8. 第4章:介绍python对象类型/4.1 python的核心数据类型/4.7 集合

    集合概念 集合类似字典,也是用大括号括起来的{ } 元素之间用逗号隔开 元素在集合中是唯一的 集合元素允许修改和删除,但是元素本身的值不能修改 集合是没有顺序的,所以不能通过下标获取集合的某个元素 集 ...

  9. python3精要(3)-python对象类型,数字,序列

最新文章

  1. window 2008 32位系统安装oracle 10g数据库,Oracle 10g for Windows 32bit安装图解-数据库专栏,ORACLE...
  2. see的口语高频用法
  3. 客户端相关知识学习(二)之h5与原生app交互的原理
  4. Struts2中的ActionContext
  5. 可搜索的文件? 是的你可以。 选择AsciiDoc的另一个原因
  6. 副业接私活必备的 10 个开源项目!
  7. PGIS平台部署中的问题及解决方案
  8. 已在此计算机上安装了此应用cad,电脑安装CAD时提示已安装导致安装失败的问题如何解决...
  9. 花生壳内网穿透,浅析原理和配置
  10. Vue 事件处理 -- 事件修饰符(prevent、stop、capture、self、once)
  11. Java核心技术 卷一 - 第 1 章 Java 程序设计概述
  12. 经典网络结构 (八):轻量化网络 (SqueezeNet, MobileNet, ShuffleNet)
  13. 监控易:2023年ITOM信创市场分析与预测
  14. Codeforces——791A Bear and Big Brother
  15. 武汉二手房价分析(原创分析,数据现势性2018年6月)
  16. 第一节项目整体管理学习笔记
  17. 【scrapy、flask】如何在社区版 PyCharm 中调试 scrapy爬虫和 flask web 服务
  18. Swing+IO+Awt实现高级抽奖系统
  19. 神经网络图像识别技术,神经网络指纹识别
  20. tpm php,电脑tpm是什么

热门文章

  1. MySql 获取表的Comment
  2. CTF加解密/编码常用在线网址
  3. XCTF_Web_新手练习区:simple_php
  4. 修改Element-UI的组件样式
  5. ElementUI分页组件的封装
  6. 商品图片放大镜的JavaScript实现
  7. spingboot实现redis的发布订阅
  8. onclick 传参,用转义符进行转义。
  9. OpenCV:Python3使用OpenCV
  10. Ruby. Vs . Python