----------------Python数据类型----------------
(1)数字
(2)字符串
(3)集合
(4)列表
(5)元组
(6)字典
------------------------------------------------------------------
*数字类型:整型、长整型、浮点型、复数型
—整型int
※整数int表示的范围:-2147483648 到 2147483648
例如:0,100,-100
※int的范围示例:
—长整型long
※long的范围很大很大,几乎可以说任意大的整数均可以存储。
※为了区分普通整数和长整数,需要在整数后加L或小写l。
例如:51856678L,-0x22345L
※示例:
而且,新版本不能通过数字末尾加L的方式定义一个长整型数据!
—浮点型float
※例如:0.0,12.0,-18.8,3e+7
※示例:
※复数举例:3.14j,8.23e-36j
※示例:
*字符串类型string
※使用引号定义的一组可以包含数字、字母、符号(非特殊系统符号)的集合。
※strval='This is a test'
strval="This is a test"
strval="""This is a test"""
(三重引号(docstring)通常用来制作字符串,在面向对象时详解)
注:使用单双引号并没有区别!
※切片
\n 换行符 \\ 表示\ \t 制表符 \* 表示一个单引号,而不是字符串结束
\r 回车 \'' 表示一个双引号,而不是字符串结束
*集合类型
※集合对象是一组无序排列的可哈希的值,集合成员可以做字典中的键。
※和其他容器类型一样,集合支持用in和not in操作符检查成员,由len()内建函数得到集合的基数(大小),
用 for 循环迭代集合的成员。但是因为集合本身是无序的,不可以为集合创建索引或执行切片(slice)操作,
也没有键(keys)可用来获取集合中元素的值。
※集合(sets)有两种不同的类型:可变集合(set)和不可变集合(frozenset)。
对可变集合(set),可以添加和删除元素,对不可变集合(frozenset)则不允许这样做。
注意:可变集合(set)不是可哈希的,因此既不能用做字典的键也不能做其他集合中的元素。
不可变集合(frozenset)则正好相反,即它们有哈希值,能被用做字典的键或是作为集合中的一个成员。
※创建集合类型和给集合赋值
(1)数字
(2)字符串
(3)集合
(4)列表
(5)元组
(6)字典
------------------------------------------------------------------
*数字类型:整型、长整型、浮点型、复数型
—整型int
※整数int表示的范围:-2147483648 到 2147483648
例如:0,100,-100
※int的范围示例:
>>>num=2147483647
>>>type(num)
<type 'int'>
注:本人使用的Python3.5.2版本,显示的是<class 'int'>
—长整型long
※long的范围很大很大,几乎可以说任意大的整数均可以存储。
※为了区分普通整数和长整数,需要在整数后加L或小写l。
例如:51856678L,-0x22345L
※示例:
>>>num=1l (!!!!注意后面不是数字1而是小写的字母l,个人建议还是用L比较好)
>>>type(num)
<type 'long'>
>>>num=999999999999999999
>>>type(num)
<type 'long'>
注:Python3.5.2版本中如下:
>>>num1=123
>>>type(num)
<class 'int'>
>>>num2=99999999999999999999999
>>>type(num)
<class 'int'>
>>>num3=123L
SyntaxError: invalid syntax
提问:新版本是否修改了整型数据范围?(已百度,没找到答案)
而且,新版本不能通过数字末尾加L的方式定义一个长整型数据!
—浮点型float
※例如:0.0,12.0,-18.8,3e+7
※示例:
>>>num=0.0
>>>type(num)
>>><type 'float'>
>>>num=12
<type 'int'>
>>>num=12.0
>>>type(num)
<type 'float'>
—复数型complex
※复数举例:3.14j,8.23e-36j
※示例:
>>>num=3.14j
>>>type(num)
<type 'complex'>
>>>num
3.1400000000000001j
>>>print num
3.14j
*字符串类型string
※使用引号定义的一组可以包含数字、字母、符号(非特殊系统符号)的集合。
※strval='This is a test'
strval="This is a test"
strval="""This is a test"""
(三重引号(docstring)通常用来制作字符串,在面向对象时详解)
注:使用单双引号并没有区别!
※切片
>>>a='abcde'
>>>a[1:4:1] 注:a[起始点:结束点:步长](切取结束点之前的部分,不包括结束点)
'bcd'
>>>a[:4] 表示从头开始取,结束点是a[4](不包括结束点)
'abcd'
>>>a[4:] 表示从a[4]开始取,一直到结尾
'e'
>>>a[::1] 表示从开头取到结尾,一步一取
>>>a[-1] 表示取字符串最后一位 注:如果使用负数的话,依次为a[-5]、a[-4]、a[-3]、a[-2]、a[-1](从小到大)
注:默认情况下Python正相取值,步长的正负确定取值的方向问题
>>>a[4:0:-1]
'edcb'
※%与format
>>> a='shop'
>>> b=0
>>> s='book%s'%a
>>> s
'bookshop'
>>> s='book%d'%b
>>> s
'book0'
>>> s='book{}'.format(a)
>>> s
'bookshop'
>>> s='book{}'.format(b)
>>> s
'book0'
※转义字符
\n 换行符 \\ 表示\ \t 制表符 \* 表示一个单引号,而不是字符串结束
\r 回车 \'' 表示一个双引号,而不是字符串结束
*集合类型
※集合对象是一组无序排列的可哈希的值,集合成员可以做字典中的键。
※和其他容器类型一样,集合支持用in和not in操作符检查成员,由len()内建函数得到集合的基数(大小),
用 for 循环迭代集合的成员。但是因为集合本身是无序的,不可以为集合创建索引或执行切片(slice)操作,
也没有键(keys)可用来获取集合中元素的值。
※集合(sets)有两种不同的类型:可变集合(set)和不可变集合(frozenset)。
对可变集合(set),可以添加和删除元素,对不可变集合(frozenset)则不允许这样做。
注意:可变集合(set)不是可哈希的,因此既不能用做字典的键也不能做其他集合中的元素。
不可变集合(frozenset)则正好相反,即它们有哈希值,能被用做字典的键或是作为集合中的一个成员。
※创建集合类型和给集合赋值
>>> s = set('cheeseshop')
>>> s
set(['c', 'e', 'h', 'o', 'p', 's'])
>>> t = frozenset('bookshop')
>>> t
frozenset(['b', 'h', 'k', 'o', 'p', 's'])
>>> len(s), len(t)
(6, 6)
>>> s == t
False
※访问集合中的值
>>> 'k' in t
True
>>> for i in s:
... print i
...
c
e
h
o
p
s
※更新集合,用各种集合内建的方法和操作符添加和删除集合的成员
>>> s.add('z')
>>> s
set(['c', 'e', 'h', 'o', 'p', 's', 'z'])
>>> s.update('pypi')
>>> s
set(['c', 'e', 'i', 'h', 'o', 'p', 's', 'y', 'z'])
>>> s.remove('z')
>>> s
set(['c', 'e', 'i', 'h', 'o', 'p', 's', 'y'])
>>> s -= set('pypi')
>>> s
set(['c', 'e', 'h', 'o', 's'])
※删除集合
>>> del s
※成员关系 (in, not in)
>>> s = set('cheeseshop')
>>> t = frozenset('bookshop')
>>> 'k' in s
False
>>> 'k' in t
True
>>> 'c' not in t
True
※集合等价/不等价
>>> s == t
False
>>> s != t
True
>>> u = frozenset(s)
>>> s == u
True
>>> set('posh') == set('shop')
True
※差补/相对补集
>>> s=set('bookshop')
>>> s
set(['b', 'h', 'k', 'o', 'p', 's'])
>>> t=set('shop')
>>> t
set(['h', 's', 'o', 'p'])
>>> s-t
set(['k', 'b'])