您的位置:首页 > 编程语言 > Python开发

Python的数据类型(内置类型)

2014-05-08 16:53 155 查看
Python提供了功能强大的对象类型,作为语言固有的一部分,在解决问题之前不需要为对象的实现书写代码。这些对象类型被称为内置类型。

Python内置对象类型有:Number(数字)、String(字符串)、List(列表)、Directory(字典)、Turple(元组)、File(文件)。

1、Number(数字):

C语言的基本数据类型有:数值类型和字符类型(char),数值类型包括整型(整型、长整型、短整型)和浮点型(单精度、双精度)。

Python包括整数和浮点数,整数相当于C语言中的长整型,浮点数相当于C语言的double类型。十六进制数和八进制数和C语言的表示是一样的,分别是以0、0x/0X开头。

另外,python还支持复数类型,复数常量由“实部+虚部”构成,从本质上将是用一堆浮点数实现的。

混合类型转化:和C语言一样,向更高级数据类型转化。

>>> import math
>>> pow(2,2)
4
>>> abs(-2)
2


涉及到数字,肯定要学习Python表达式运算符。Python的一些表达式操作和其他语言是一样的,如:

数学操作:+,-,*,/,%;
按位操作:&,|,~,^(异或);
移位运算:>>, <<;
比较操作:==,!=

有些是python特有的,如:

逻辑运算:or,not,and;
身份测试: is,is not
序列成员关系测试:in, is not in
生成匿名函数:lambdaargs:expression

2、String(字符串):

C语言有字符类型,字符数组可以对字符串进行操作。

字符串常量可以用单引号,也可以用双引号,效果是一样的。

合并:+
重复:*
索引:和C语言一样,Python的偏移从0开始。与C语言不同的是,Python还允许用负偏移索引,从后往前,索引号为-1,-2…,负索引号加上字符串长度即得到正索引号。
分片:分片就是分段取字符串。s[m,n],m代表起始的字符位置(从0开始),一直到n-1这个字符,也可以s[m:]或者s[:-1]。
修改字符串的内容:python的字符串为不可变序列,不能在原处改变一个字符串。可以通过索引和‘+’

输入的格式‘theseare my %d %s’%(22, ‘penciles’)

字符串模块:import string

>>> s2 = "block"
>>> print(s2)
block
>>> len('adaaa')
5
>>> 'abc'+'aaa'
'abcaaa'
>>> 'a'*5
'aaaaa'
>>> s = 'abcdefg'
>>> s[0], s[2]
('a', 'c')
>>> s[1:3]
'bc'
>>> s[1:]
'bcdefg'
>>> s[:-1]
'abcdef'
>>> s = 'span'
>>> s = s + ’spam!'
SyntaxError: invalid character in identifier
>>> s = s + 'spam!'
>>> s
'spanspam!'
>>> s = s[:4] + 'burger' + s[-1]
>>> s
'spanburger!'
>>> a = '123'
>>> 'i am %s' %a
>>> s.upper()
'ABCDEFG'
>>> s = 'abcdefg'
>>> s.upper()
'ABCDEFG'
>>> s.lower()
'abcdefg'
>>> s.find('a')
0
>>> s.find('l')
-1


3、List(列表):

列表是可变序列。

列表用[] 表示,列表可以包含任何种类的对象:数字、字符串、其他列表。

列表的操作:

列表的一些操作和字符串是相同的,可以通过下表索引、分片、用len求长度、用+合并、用*重复、用in表示成员关系。

列表特有的操作有:

增长append、排序sort、查找index、反转inverse;索引赋值、分片赋值。可以用del删除列表中的某项或者某个分片。

个人觉得列表类似于C语言中的数组,只不过数组中存放的是相同类型的数据。

>>> len([1,2,3])
3
>>> [1,2,3]+[4,5,6]
[1, 2, 3, 4, 5, 6]
>>> l = ['abc', 'efg','fgf']
>>> l[0] = 'aaa'
>>> l
['aaa', 'efg', 'fgf']
>>> l.append('aaa')
>>> l
['aaa', 'efg', 'fgf', 'aaa']
>>> l.sort()
>>> l
['aaa', 'aaa', 'efg', 'fgf']
>>> del l[0]
>>> l
['aaa', 'efg', 'fgf']


4、Directory(字典):

列表是有序的对象集合,通过偏移存取;字典是无序的集合,通过键来存取。

字典用{}表示。

>>> d = {'spam':2, 'eggs':1}
>>> d
{'spam': 2, 'eggs': 1}
>>> d2 = {'food':{'spam': 2, 'eggs': 1}}
>>> d2
{'food': {'spam': 2, 'eggs': 1}}
>>> d['eggs']
1
>>> del d['eggs']
>>> d
{'spam': 2}
>>> len(d)
1


5、Turple(元组):

元组由简单的对象组构成,除了不能原位改变,而且通常携程一串圆括号()中的项以外,元组与列表类似。元组有列表的大多数属性。

???有了列表,为何还要用元组?

元组的不可变性可以提供某些整体性,在一个程序中一个元组不会被另一个引用改变。列表可以用于想变动的有序集合的工具;元组则处理其他事情。

>>> t = (0,1,2,3)
>>> t
(0, 1, 2, 3)


6、File(文件):

>>> myfile = open('e:\myfile.txt', 'w')
>>> myfile.write()
Traceback (most recent call last):
File "<pyshell#96>", line 1, in <module>
myfile.write()
TypeError: write() takes exactly 1 argument (0 given)
>>> myfile.write('hello text file\n')
16
>>> myfile.close()
>>> myfile = open('e:\myfile.txt', 'r')TypeError: write() takes exactly 1 argument (0 given)
SyntaxError: invalid syntax
>>> myfile = open('e:\myfile.txt', 'r')
>>> myfile.readline()
'hello text file\n'
>>> 'hello text file\n'
'hello text file\n'
>>>


文件操作主要是文件的读写,需要注意文件读写的类型。

后续会继续补充。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: