Python数据类型、条件控制

数据类型-列表

列表和字符串都是属于容器类型。字符串是一个扁平型容器,也就是说字符串这个容器只能包含字符串类型的值。相当于其它语言的“数组”,列表什么都能装,相当于一个大容器。

列表初始化

变量名 = [元素1,元素2,元素3,…](列表自动扩容,无需预先定义好元素个数)

数据类型-列表的主要方法

list.append():将元素添加到列表末尾,如:

1
2
3
4
s = []
s.append([1,3])
s.append(3)
s.append('hello')

现在列表中有三个元素,第一个是一个列表[1,3],第二个元素是一个数3,第三个是一个字符串‘hello’

list.reverse():将列表中元素进行翻转,只是对列表进行操作,并没有返回值.如:

1
2
s = [1,3,5]
print(s.reverse())

等价于[::-1]

None代表python中的空集

max(list)\/min(list)/sum(list):用迭代的方式求列表的元素的最大值/最小值/求和(必须保证列表中的每个元素是可运算的

len(list):求列表的长度

zip(list1, list2):同时循环两个列表,如

1
2
3
4
5
s1 = ['name', 'password', 'age']
s2 = ['liuzhongxia', '123123', '21']

for x, y in zip(s1, s2):
print(x, y)

输出:name liuzhongxia ; password 123123 ; age 21

如果循环两个列表长度不一样的话,则会按照最少元素的列表来循环,多余项直接省略。

[x for x in range(10)]:列表推导式。适合于简单的列表创建,不需要借助迭代器。如:

1
2
s = [60, 57, 78, 90, 97, 87, 92]
print([x for x in s if x > 90])

输出:[97, 92]

range(start, end, step):快速生成一个数字序列,范围是[start,end)。如:

1
for i in range(50, 61, 3):

输出:50;53;56;59

注:可以使用list()来将字符串、元组等直接强制转换成列表格式

数据类型-字典

字典是无序对象的集合(区别于列表是有序集合),适合键值对映射关系(key=>value)。存取元素的时候是通过键来取得。
字典中每个键值对用冒号(:)分割,键值对之间用逗号(,)连接,例如:

1
dict = {'key1' : 'value1', 'key2''value2'}

如果需要访问字典中的元素,只能通过键索引,如:

1
dict['key1']

输出:value1

空字典使用dict = {}来创建

字典函数

dict.clear():

1
2
dict = {'name' : 'liuzhongxia', 'age' : 18, 'address' : [1, 2, 3]}
dict.clear()

输出:

dict.keys(), dic.values(),dict.items():以列表(伪)返回字典中所有的键、以列表(伪)返回字典所有的值、以元组返回字典中的成员

1
2
3
4
5
6
7
8
9
dict = {'name' : 'liuzhongxia', 'age' : 18, 'address' : [1, 2, 3]}
for k, v in dict.items():
print(k, v)

for k in dict.keys():
print(k)

for v in dict.values():
print(v)

条件控制

判断

1
2
3
4
5
6
if a < 0:
print('case1')
elif a >=0 :
print('case2')
else:
print('case3')

while循环

1
2
3
while here <= end:
sum += here
here = here + 1

构造一个死循环使用如下(Python中布尔类型要大写True和False):

1
2
3
4
while True:
if num == 10:
break
num += 1

Python中常见的 False 值:False\, \’’\, 0\, []\, ()\, {}

循环结构-for循环

什么时候使用for循环,什么时候使用while循环?

循环次数一定,或者在某个特定的容器内循环,这种一般可用for循环;而循环次数不确定,只在符合某些条件的情况下进行循环,此处使用while循环

例如:

1
2
3
name = ['name1', 'name2', 'name3 ']
for x in name:
print (x)

循环结构-break和continue

1
2
3
4
5
6
7
alist = ['a', 'b', 'c']
for item in alist:
if item == 'c':
break
eilf item == 'b':
continue
print(item)

输出:a

for-else循环:如果在for循环中没有触发过break语句的话,等到循环执行完了之后,则会跳转到else语句。例如:

1
2
3
4
5
6
7
alist = ['a', 'b', 'c']
for item in alist:
if item == 'a':
printf('meet condition')
break
else:
print('break aint execute')

注意else缩进的位置

当然,while也有相同的用法