一、数据类型:
- 数值- 字符串- 列表- 元组- 字典
1.数值类型:
(1)整型
In [6]: a = 123
In [7]: type(a)
Out[7]: int
In [8]:
(2)长整型
In [8]: a = 199999999999999999999999999999
In [9]: a
Out[10]: 199999999999999999999999999999L
In [11]: type(a)
Out[12]: long
In [13]:
(3)浮点型
0.0, 12.0 -18.8 3e+7等
科学计数法是浮点型
In [11]: 3e+7
Out[11]: 30000000.0
In [12]: type(3e+7)
Out[12]: float
In [13]: 3.0/2
Out[13]: 1.5
In [14]: type(3.0/2)
Out[14]: float
In [15]:
(4)复数型
python对复数提供内嵌支持,这是大部分软件没有的。
In [8]: a = 3.14j
In [9]: a
Out[9]: 3.14j
In [10]: type(a)
Out[10]: complex
2.字符串类型:
In [12]: a = 'abc'
In [13]: a
Out[13]: 'abc'
In [14]: type(a)
Out[14]: str
In [15]:
三重引号还可以做注释:.
In [28]: a = 'hello\nworld'
In [29]: a
Out[29]: 'hello\nworld'
In [30]: a = "hello\nworld"
In [31]: a
Out[31]: 'hello\nworld'
In [39]: a = '''hello\nworld'''
In [40]: a
Out[40]: 'hello\nworld'
In [41]: print a
hello
world
In [42]:
In [43]: type(a)
Out[44]: str
序列索引:
In [42]: a = 'abcde'
In [43]: a[0]
Out[43]: 'a'
In [44]: a[1]
Out[44]: 'b'
In [45]: a[-1]
Out[45]: 'e'
In [46]: a[-2]
Out[46]: 'd'
序列切片:
In [42]: a = 'abcde'
In [43]: a[0]
Out[43]: 'a'
In [44]: a[1]
Out[44]: 'b'
In [45]: a[-1]
Out[45]: 'e'
In [46]: a[-2]
Out[46]: 'd'
In [47]: a[0:2]
Out[47]: 'ab'
In [48]: a[0:4]
Out[48]: 'abcd'
In [49]: a[0:3]
Out[49]: 'abc'
In [50]: a[1:3]
Out[50]: 'bc'
In [56]: a[0] + a[1]
Out[56]: 'ab'
In [57]: a[:2]
Out[57]: 'ab'
In [58]: a[:]
Out[58]: 'abcde'
In [59]: a[:-1]
Out[59]: 'abcd'
In [60]: a[::-1]
Out[60]: 'edcba'
In [61]: a[::1]
Out[61]: 'abcde'
In [62]: a[:3:1]
Out[62]: 'abc'
In [63]: a[::2]
Out[63]: 'ace'
In [64]: a
Out[64]: 'abcde'
In [65]: a[-4::-2]
Out[65]: 'b'
In [66]: a[-4:-2]
Out[66]: 'bc'
In [67]: a[-2:-4:-1]
Out[67]: 'dc'
In [68]:
二、元组
1.序列
字符串、列表和元组都是序列
序列的两个主要特点是索引操作符和切片操作符.
索引操作符让我们可以从序列中抓取一个特定的项目。 切片操作符让我们能够获取序列的一个切片,即一部分序列。 序列的基本操作:
(1) len() :求序列长度
In [1]: a = '1234;5lasdfasdf'
In [2]: len(a)
Out[2]: 15
(2) +:连接2个序列(两个str)
In [3]: a = 'hello'
In [4]: b = 'world'
In [5]: print a+b
helloworld
In [6]:
(3) *:重复序列元素(*后面根的是int)
In [9]: print a * 3 hellohellohello
In [10]:
(4) in:判断元素是否在序列中
In [12]: print a
[1, 3, 3, 5]
In [13]: 3 in a
Out[13]: True
(5) max():返回最大值
In [21]: print a
[1, 3, 3, 5]
In [22]: print max(a)
5
(6) min():返回最小值
In [21]: print a
[1, 3, 3, 5]
n [23]: print min(a)
1
(7) cmp(x,y):比较两个序列是否相等
In [24]: a
Out[24]: [1, 3, 3, 5]
In [27]: b = [1,3,3,5]
In [28]: cmp (a,b)
Out[28]: 0
In [29]: cmp(a,'1,3,3,5')
Out[29]: -1
In [30]: cmp(a,[1,3,3,5])
Out[30]: 0
In [31]: cmp(a[1],a[2])
Out[31]: 0
In [32]: cmp(a[0],a[3])
Out[32]: -1
In [33]: cmp(a[3],a[2])
Out[33]: 1
In [34]:
元组:
- 元组和列表十分相似- 元组和字符串一样是不可以变的。
元组可以存储一系列的值 元组通常用在用户定义的函数能够安全地采用一组值的时候,即被使用的元组的值不会改变。 In [34]: t = (1,3,5,'a',(1,))
In [35]: type(t)
Out[35]: tuple
In [36]: print t
(1, 3, 5, 'a', (1,))
In [37]:
2.元组操作:
元组和字符串一样属于序列类型,可以通过索引和切片操作
元组值不可变
无组的拆分
t = (1,2,3)
a,b,c=t
In [150]: t = (1, 3, 5, 'a', (1,))
In [151]: print t
(1, 3, 5, 'a', (1,))
In [39]: t[0]
Out[39]: 1
In [40]: print t
(1, 3, 5, 'a', (1,))
In [41]: t[0] = 2---------------------------------------------------------------------------TypeError Traceback (most recent call last)
in
()----> 1 t[0] = 2TypeError: 'tuple' object does not support item assignmentIn [42]:
(1) 元组中引用变量:
In [42]: a
Out[42]: [1, 3, 3, 5]
In [43]: t = (a,'ab')
In [44]: t
Out[44]: ([1, 3, 3, 5], 'ab')
In [45]:
(2) 元组切片:
In [44]: tOut[44]: ([1, 3, 3, 5], 'ab')In [45]: first,second = t
In [46]: firstOut[46]: [1, 3, 3, 5]In [47]: secondOut[47]: 'ab'In [14]: tOut[14]: (1, 2, 3)In [15]: t.index(1)Out[15]: 0In [16]: t.index(2)Out[16]: 1In [17]: t.index(3)Out[17]: 2In [18]: t = (1,3,3,2,5)
In [19]: t.index(5)Out[19]: 4In [20]: t.count(3)Out[20]: 2In [21]: t.count(5)Out[21]: 1
三、列表
列表内可变
列表(list)是处理一组有序项目的数据结构,即要以在列表中存储一个序列的项目。
列表显示是可变类型的数据
1.创建列表:
list1 = []
list2 = [1,3,3,'a']
list3 = list()
In [22]: list1 = []
In [23]: type(list1)
Out[23]: listIn [24]: listlist list1
In [24]: list2 = list()
In [25]: type(list2)
Out[25]: listIn [26]: listlist list1 list2
In [26]: list2
Out[26]: []
In [27]: listlist list1 list2
In [27]: list3 = ['a',1,2,(1,),[1,'a']]
In [28]: list3
Out[28]: ['a', 1, 2, (1,), [1, 'a']]
In [29]: len(list3)
Out[29]: 5In [30]:
In [30]: list3[-1]
Out[30]: [1, 'a']
In [31]: list3[0]
Out[31]: 'a'In [37]: list3
Out[37]: ['a', 1, 2, (1,), [1, 'a']]
In [38]: list3[0:3]
Out[38]: ['a', 1, 2]
In [40]: list3[0] = 'b'In [41]: list3
Out[41]: ['b', 1, 2, (1,), [1, 'a']]
2.列表操作:
(1) 取值:
切片和索引
(2) 添加:(append()默认加到最后一个元素)
list.append()
In [85]: list3
Out[85]: ['b', [], (1,), 1]
In [86]: list3[1]
Out[86]: []
In [87]: list3[1].append('abc')
In [88]: list3
Out[88]: ['b', ['abc'], (1,), 1]
(3) 追加
In [42]: list3.append(333)
In [43]: list3
Out[43]: ['b', 1, 2, (1,), [1, 'a'], 333]
In [44]:
In [43]: list3
Out[43]: ['b', 1, 2, (1,), [1, 'a'], 333]
In [44]: list2
Out[44]: []
In [45]: list2 = [1111,222,333]
In [46]: list2 + list3
Out[46]: [1111, 222, 333, 'b', 1, 2, (1,), [1, 'a'], 333]
In [47]:
In [52]: (list2 + list3)*2Out[52]:
[1111,222,333,'b',1,2,
(1,),
[1, 'a'],333,1111,222,333,'b',1,2,
(1,),
[1, 'a'],333]
In [53]:
(4) 删除
del list[]list.remove(list[])In [53]: list2Out[53]: [1111, 222, 333]In [54]: del listlist list1 list2 list3In [54]: del list2[2]In [55]: list2Out[55]: [1111, 222]In [55]: list2Out[55]: [1111, 222]In [56]: list2.remove(list2[1])In [57]: list2Out[57]: [1111]
(5) 修改:
list[] = xIn [74]: list2
Out[74]: [1111, 22222, 2223, 22233434, 33434]In [75]: list2[0] = 0000
In [76]: list2
Out[76]: [0, 22222, 2223, 22233434, 33434]In [77]: list2
Out[77]: [0, 22222, 2223, 22233434, 33434]In [78]: list2.insert(1,66666)
In [79]: list2
Out[79]: [0, 66666, 22222, 2223, 22233434, 33434]In [80]:
(6) 查找:
var in listIn [57]: list2Out[57]: [1111]In [58]: 1 in list2Out[58]: FalseIn [59]: 1111 in list2Out[59]: TrueIn [60]:
(7) 排序:
In [90]: list3
Out[90]: ['b', ['abc'], (1,), 1]
In [91]: list3.sort()
In [92]: list3
Out[92]: [1, ['abc'], 'b', (1,)]
In [93]:
(8) 反转:
In [93]: list3
Out[93]: [1, ['abc'], 'b', (1,)]
In [94]: list3.reverse()
In [95]: list3
Out[95]: [(1,), 'b', ['abc'], 1]
In [96]:
(9) POP默认删除最后一个,pop删除对应位置.
In [103]: list2Out[103]: [0, 66666, 22222, 2223, 22233434, 33434]In [104]: list2.pop(1)Out[104]: 66666In [105]: list2Out[105]: [0, 22222, 2223, 22233434, 33434]In [106]: list2.pop()Out[106]: 33434In [107]: list2.pop()Out[107]: 22233434In [108]: list2Out[108]: [0, 22222, 2223]In [109]:
(10) 迭代:
字符串,元组都是可迭代的,都可以通过for循环去访问。
In [120]: list3
Out[120]: ['b', ['abc']]
In [121]: range(5)
Out[121]: [0, 1, 2, 3, 4]
In [122]: list3.extend(range(5))
In [123]: list3
Out[123]: ['b', ['abc'], 0, 1, 2, 3, 4]
In [125]: list3.extend('5555')
In [126]: list3
Out[126]: ['b', ['abc'], 0, 1, 2, 3, 4, '5', '5', '5', '5']
In [127]: list3.extend('a')
In [128]: list3
Out[128]: ['b', ['abc'], 0, 1, 2, 3, 4, '5', '5', '5', '5', 'a']
In [129]: list3.extend('1234')
In [130]: list3
Out[130]: ['b', ['abc'], 0, 1, 2, 3, 4, '5', '5', '5', '5', 'a', '1', '2', '3', '4']
In [131]:
-
tab补齐:
-
python 一切都是对象
(11) 帮助:
help(t.index)
Help on built-in function index:index(...)
L.index(value, [start, [stop]]) -> integer -- return first index of value.
Raises ValueError if the value is not present.
(END)

