python(3)------The object type of python
2013-12-01 13:01
465 查看
1.总览——Python程序可以分解为模块、语句、表达式和对象
程序有模块构成(模块的概念上一章中提过)
模块包含语句
语句包含表达式
表达式建立并处理对象
2.Python核心数据类型
表2.1 Python内置对象类型
以上是Python内置对象基本类型,当然不完全。比如我们在编写网络脚本时,可以使用套接字对象,其他类型的对象往往通过导入或使用模块建立。
我们将表2.1中所列类型为Python核心类型。
有一点需要注意:
python中没有类型声明(这点有点儿像matlab),运行的表达式决定了建立对象的类型
在表2.1中有两个特殊的类型,一个是列表[],一个是字典{},列表提供了其他对象的有序集合,而字典是通过键值存储对象的(类似STL::map),列表和字典都可以实现嵌套,后面会讲。
3.Python数据类型——数字
一般地数学操作和matlab中没有什么区别:
[cpp] view
plaincopy
123+222
345
>>> 2**100
1267650600228229401496703205376L
>>> 3.1415*2
6.283
>>> print 3.1415*2
6.283
这里注意一下第二个命令2**100,结果显示的时候最后出来的L是由于类型强制转换为long(长整型)
除了表达式,python还可以导入一些常用的数学模块,比如math和random:
[cpp] view
plaincopy
>>> import math
>>> math.pi
3.141592653589793
>>> math.sqrt(85)
9.219544457292887
>>>
>>> import random
>>> random.random()#随机生成一个数字in[0,1]
0.13332430829199282
>>> random.choice([1,2,3,4])#在列表1,2,3,4中随机选一个
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++非常相似。
程序有模块构成(模块的概念上一章中提过)
模块包含语句
语句包含表达式
表达式建立并处理对象
2.Python核心数据类型
表2.1 Python内置对象类型
以上是Python内置对象基本类型,当然不完全。比如我们在编写网络脚本时,可以使用套接字对象,其他类型的对象往往通过导入或使用模块建立。
我们将表2.1中所列类型为Python核心类型。
有一点需要注意:
python中没有类型声明(这点有点儿像matlab),运行的表达式决定了建立对象的类型
在表2.1中有两个特殊的类型,一个是列表[],一个是字典{},列表提供了其他对象的有序集合,而字典是通过键值存储对象的(类似STL::map),列表和字典都可以实现嵌套,后面会讲。
3.Python数据类型——数字
一般地数学操作和matlab中没有什么区别:
[cpp] view
plaincopy
123+222
345
>>> 2**100
1267650600228229401496703205376L
>>> 3.1415*2
6.283
>>> print 3.1415*2
6.283
这里注意一下第二个命令2**100,结果显示的时候最后出来的L是由于类型强制转换为long(长整型)
除了表达式,python还可以导入一些常用的数学模块,比如math和random:
[cpp] view
plaincopy
>>> import math
>>> math.pi
3.141592653589793
>>> math.sqrt(85)
9.219544457292887
>>>
>>> import random
>>> random.random()#随机生成一个数字in[0,1]
0.13332430829199282
>>> random.choice([1,2,3,4])#在列表1,2,3,4中随机选一个
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中出现的TypeError: object of type 'zip' has no len()
- Deserialization Problems ... The constructor to deserialize an object of type ... was not found
- Python开发:AttributeError: 'Class_Of_LoanUseCase' object has no attribute '_type_equality_funcs'
- BW: Start of the after-import method RS_DTPA_AFTER_IMPORT for object type(s) DTPA (激活模式)
- .Net Remoting 排错笔记:The constructor to deserialize an object of type 'xxx.xxxx.xxxxx' was not found.
- 【转】The content of element type "configuration" must match "(properties?,settings?,typeAliases?,typeHandlers?,objectFactory?...
- The method regist(int, String, long, Object...) of type PaymentProxy must override a superclass解决方式
- python2.7web代码用python3.6运行时,浏览器发送请求报错TypeError: Object of type 'bytes' is not JSON serializable的解决办法
- The object of type 'RectTransform' has been destroyed but you are still trying to access it
- The content of element type "configuration" must match "(properties?,settings?,typeAliases?,typeHandlers?,objectFactory?...
- Cannot assign value of type 'AnyObject' to type 'HereIsTheTypeName?'
- How do I check if a type is a subtype OR the type of an object?
- python3 爬虫TypeError: POST data should be bytes, an iterable of bytes, or a file object. It cannot be
- Decodes a String into an object of the specified type
- fortran Because of COMMON, the alignment of object is inconsistent with its type
- How do I get the name of an object's type in JavaScript
- Python Theano TypeError: Cannot convert Type TensorType(float64, vector) (of Variable Subtensor{int64:int64:}.0) into Type TensorType(float64, matrix)
- The content of element type "configuration" must match "(properties?,settings?,typeAliases?,typeHandlers?,objectFactory?...
- Get the type name of a com object
- MissingReferenceException: The object of type 'Texture2D' has been destroyed but you are still tryi