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

来源:互联网 发布:独立域名和二级域名 编辑:程序博客网 时间:2024/06/05 05:18

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'>>> 

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

后续会继续补充。

0 0