python623

格式输出与列表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
格式输出
%d 整数
%f 浮点数
%s 字符串
%x 十六进制整数
print 'whoami %d' %(1) #这个是整数1
whoami 1
print 'whoami %s' %('1') #这个是字符1
whoami 1
print 'whoami %f' % 1.00 这个是浮点1
whoami 1.000000
print 'whoami %x' %(1) 这个是十六进制整数1
whoami 1
list 列表
定义并循环输出列表
>>> whoami = ['diyi','dier','laosan']
>>> whoami
>>> for i in whoami:
... print i
...
diyi
dier
laosan
输出定位元素
>>> whoami[0]
'diyi'
>>> whoami[2]
'laosan'
>>> whoami[1]
'dier'
>>> whoami[3]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range
>>> len(whoami)
3
>>> whoami[len(whoami)-1]
'laosan'
添加元素
>>> whoami.append('xiaosi')
>>> whoami
['diyi', 'dier', 'laosan', 'xiaosi']
插入元素
>>> whoami.insert(2,'whoami')
>>> whoami
['diyi', 'dier', 'whoami', 'laosan', 'xiaosi']
修改元素
>>> whoami[2] = 'gai'
>>> whoami
['diyi', 'dier', 'gai', 'laosan', 'xiaosi']
删除末尾元素
>>> whoami.pop()
'test'
>>> whoami
['diyi', 'dier', 'gai', 'laosan', 'xiaosi']
删除指定元素
>>> whoami.pop(2)
'gai'
>>> whoami
['diyi', 'dier', 'laosan', 'xiaosi']
嵌套取值
>>> cn = whoami
>>> mingzi = [cn,'en']
>>> mingzi[0][2]
'laosan'
元组 tuple 元组中的值是不可变的 无法增删改
>>> yuanzu = ('1','2','3')
>>> yuanzu
('1', '2', '3')
>>> for i in yuanzu:
... print i
...
1
2
3
>>> yuanzu[0]
'1'
>>> yuanzu[0] = '2333'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
单一元组的时候必须加,来消除歧义,否则会误解为数学计算中的小括号
>>> t=(1)
>>> t
1
>>> t=(1,)
>>> t
(1,)
>>> type(t)
<type 'tuple'>
>>> t =(1)
>>> type(t)
<type 'int'>
tuple中有变量的时候,指向不变,但是有列表时就可以变化
变量不变
>>> z = 'a'
>>> t = ('1','2',z)
>>> t
('1', '2', 'a')
>>> z= 'b'
>>> t
('1', '2', 'a')
列表变
>>> t = ('1','2',['1','2'])
>>> t
('1', '2', ['1', '2'])
>>> t[2][1] = '3'
>>> t
('1', '2', ['1', '3'])
格式转换
------------------------------
找到一个好东西
int(x [,base ]) 将x转换为一个整数
long(x [,base ]) 将x转换为一个长整数
float(x ) 将x转换到一个浮点数
complex(real [,imag ]) 创建一个复数
str(x ) 将对象 x 转换为字符串
repr(x ) 将对象 x 转换为表达式字符串
eval(str ) 用来计算在字符串中的有效Python表达式,并返回一个对象
tuple(s ) 将序列 s 转换为一个元组
list(s ) 将序列 s 转换为一个列表
chr(x ) 将一个整数转换为一个字符
unichr(x ) 将一个整数转换为Unicode字符
ord(x ) 将一个字符转换为它的整数值
hex(x ) 将一个整数转换为一个十六进制字符串
oct(x ) 将一个整数转换为一个八进制字符串

python 的 条件判断与循环

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
与其它程序没有什么不同
#-*- coding:utf-8 -*-
a = int(raw_input('a='))
#print type(a)
if a > 0:
print '世界爆炸'
elif a == 0:
print '世界战争'
else:
print '世界和平'
for循环
for i in list:
print i
最经典的累加
sum = 0
for x in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]:
sum = sum + x
print sum
5050累加
sum = 0
for x in range(101):
sum = sum + x
print sum
奇数和的计算 while 的使用
sum = 0
n = 99
while n > 0:
sum = sum + n
n = n - 2
print sum

字典 dict

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
一个key只能对应一个value
dict的key必须是不可变对象。
dict有以下几个特点:
查找和插入的速度极快,不会随着key的增加而增加;
需要占用大量的内存,内存浪费多。
而list相反:
查找和插入的时间随着元素的增加而增加;
占用空间小,浪费内存很少。
所以,dict是用空间来换取时间的一种方法。
set
字典中key是可以相同的,set的key却是不同的,但set不储存value
set和dict类似,也是一组key的集合,但不存储value。
由于key不能重复,所以,在set中,没有重复的key。
重复元素会被过滤掉
>>> s = set([1,1,1,1,1,1,1,1,22,2,2,2,2,2,3])
>>> s
set([1, 2, 3, 22])
>>>
通过add(key)方法可以添加元素到set中,可以重复添加,但不会有效果:
s.add(4)
>>> s.add(5)
>>> s
set([1, 2, 3, 5, 22])
set其实是无序的
>>> s.add('234234')
>>> s
set([1, 2, 3, 5, 22, '234234'])
>>>
>>> s.add(0) 添加0
>>> s
set([0, 1, 2, 3, 5, 22, '234234'])
>>> s.add('') 添加空字符串
>>> s
set([0, 1, 2, 3, 5, '', 22, '234234'])
>>>
>>> s.add() 添加空值是不可以的
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: add() takes exactly one argument (0 given)
s.remove(1)
>>> s.remove(1) 删除元素,但是remove的值必须存在
>>> s
set([0, 2, 3, 5, '', 22, '234234'])
使用 discard 删除的话,.discard(obj)中的obj如果是set中的元素,就删除,如果不是,就什么也不做
>>> s
set(['a', 2, 3, 5, '', 7, 22, '234234', 989])
>>> s.discard(234234234324)
>>> s
set(['a', 2, 3, 5, '', 7, 22, '234234', 989])
>>> s.discard(22)
>>> s
set(['a', 2, 3, 5, '', 7, '234234', 989])
set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集等操作:
set([0, 2, 3, 5, '', 22, '234234'])
>>> s.add(7)
>>> s
set([0, 2, 3, 5, '', 7, 22, '234234'])
>>> s.add(989)
>>> s
set([0, 2, 3, 5, '', 7, 22, '234234', 989])
>>> s.add('a')
>>> s
set([0, 'a', 2, 3, 5, '', 7, 22, '234234', 989])
>>>
>>> s
set([0, 'a', 2, 3, 5, '', 7, 22, '234234', 989])
>>> b =set([2333,2,3,5,7])
>>> s&b
set([2, 3, 5, 7])
>>> s |b
set([0, 'a', 2, 3, 5, '', 7, 2333, 22, '234234', 989])
>>> s1 = set("qiwsir")
>>> s1 自动拆分字符
set(['q', 'i', 's', 'r', 'w'])
set.pop()是从set中任意选一个元素,删除并将这个值返回.但是,不能指定删除某个元素.
从另外一个set中合并过来元素 使用 set.update update只能用于增加字符串 ,用于整数等类型就会报错
>>> s1.update('whoami')
>>> s1
set(['a', 'i', 'h', 'm', 'o', 'q', 's', 'r', 'w'])
set 最常用的地方应该就是交并集合 ,比较,或者统计了
set.clear(),清空