数据结构 列表list 元组tuple 集合set 字典dict
运算 运算符 控制流语句(if while for break continue)
数据结构
列表(list)
我们创建一个列表list用于存放HELLO:
list=['H','E','L','L','O']
他的 下标/索引 如图所示:
如果我们要访问list里的元素可以这样访问:
# 查询元素 直接访问列表的 下标/索引
print (list[0]) # 输出 H
print (list[1]) # 输出 E
print (list[2]) # 输出第一个 L
print (list[3]) # 输出第二个 L
print (list[4]) # 输出 O
print (list[5]) # !注意这里会报错,因为总共只有五个元素。
如果我们要在list里添加元素:
# 增加元素 append()
list.append('需要增加的内容') # 现在列表里的元素是['H','E','L','L','O','需要增加的内容']
list.append('W') # 增加了 W
list.append('O') # 增加了 O
list.append('R') # 增加了 R
list.append('L') # 增加了 L
list.append('D') # 增加了 D
print (list) # 输出:['H','E','L','L','O','需要增加的内容','W','O','R','L','D']
大家可能发现了append是将元素添加到list末尾
接下来我们学习一个我们可以将元素放到任何位置的方法:
# 插入元素 insert()
list.insert(5,'我在需要增加的内容前面') # 在下标为5的位置插入了 '我在需要增加的内容前面'
print (list) # 输出:['H','E','L','L','O','我在需要增加的内容前面','需要增加的内容','W','O','R','L','D']
# insert的其他特性自行测试
接下来我们学习如何修改一个元素:
# 修改元素 访问元素的 下标/索引 并赋值
list[5] = '稍会删除我,我的下标是5' # 将下标为 5 的元素修改为 '稍会删除我,我的下标是5'
list[6] = '稍会删除我,我的下标是6' # 将下标为 6 的元素修改为 '稍会删除我,我的下标是6'
print (list) # 输出:['H','E','L','L','O','稍会删除我,我的下标是5','稍会删除我,我的下标是6','W','O','R','L','D']
接下来我们学习根据 下标/索引 删除一个元素:
# 删除元素 del语句 条件是知道索引
del list[5] # 删除了下标是 5 的元素
del list[6] # 删除了下标是 6 的元素
print (list) # 输出:['H','E','L','L','O','W','O','R','L','D']
接下来我们学习根据值删除一个元素:
# 删除元素 remove()
list.remove('H') # 删除了值为'H'的元素
list.remove('E') # 删除了值为'E'的元素
list.remove('L') # 删除了值为'L'的元素
list.remove('L') # 删除了值为'L'的元素
list.remove('O') # 删除了值为'O'的元素
print (list) # 输出:['W','O','R','L','D']
列表的最后我们学习一下怎样求一个列表的长度:
# 求列表的长度 len()
print len(list) # 输出 5 因为有5个元素 W O R L D 所以输出 5
元组(tuple)
Python的元组与列表类似,不同之处在于元组不能 添加 删除 修改。
# 尝试修改元组
# 我们先创建一个元组
num = (66,88) # 创建了一个元组 有两个元素 66 和 88
# 尝试添加
num.append(11) # 尝试添加元组元素 11 会报错 不能添加
# 尝试删除
del num[0] # 尝试删除元组元素 下标/索引 为0的元素 会报错 不能删除
# 尝试修改
num[0] = 1 # 尝试修改元组 下标/索引为0的元素的值为 1 会报错 修改不成功
正确的修改元组方式就是重新赋值给存放元组的变量:
如果你想要修改元组:
# 我们先创建一个元组
num = (66,88) # 创建了一个元组 有两个元素 66 和 88
print (num) # 输出: (66,88)
# 修改元组 只能重新给 元组的变量重新赋值
num = (11,22,33,44) # 重新给变量 num 赋值了一个新的元组值
print (num) # 输出: (11,22,33,44)
查询元组
# 我们先创建一个元组
num = (66,88) # 创建了一个元组 有两个元素 66 和 88
print (num[0]) # 输出: 66
print (num[1]) # 输出: 88
# 和列表的查询方式一致
集合(set)
集合(set)是一个无序不重复元素的序列
主要作用:
一、去重,把一个列表变成集合,就自动去重了。
二、关系测试,测试两组数据之间的交集,差集,并集等关系。
# 我们先创建个集合
set1 = set('aabcde')
set2 = set('cdefgg')
print (set1) # 输出:set(['a', 'c', 'b', 'e', 'd']) 随机无序列 并且去重 a
print (set2) # 输出:set(['c', 'e', 'd', 'g', 'f']) 随机无序列 并且去重 g
# 也可以这样创建集合 注!不能用第二种方法创建空集合
set3 = {'tom', 'jim', 'Mary'}
set4 = {'tom', 'jack', 'rose'}
print (set3) # 输出:set(['jim', 'Mary', 'tom']) 随机无序列
print (set4) # 输出:set(['rose', 'jack', 'tom']) 随机无序列
计算 set1 和 set2 集合的 差集 并集 交集 异或集
print (set1 - set2) # 差集输出:set(['a', 'b'])
print (set2 - set1) # 差集输出:set(['g', 'f'])
print (set1 | set2) # 并集输出:set(['a', 'c', 'b', 'e', 'd', 'g', 'f'])
print (set1 & set2) # 交集输出:set(['c', 'e', 'd'])
print (set1 ^ set2) # 异或集输出:set(['a', 'b', 'g', 'f'])
集合常用操作
s = set([1,2,3,4]) # 创建一个数值集合
t = set('hello') # 创建一个唯一字符的集合
t.add('x') # 添加一个元素
s.update([10,22,33]) # 在 s 集合中添加多项
t.remove('h') # 删除一个元素
len(s) # 集合的长度
字典(dict)
在Python中,字典是一系列键值对.每个键都与一个值相关联,你可以使用键来访问与之相关的值.与键相关联的值可以是数字,字符串,列表乃至字典.事实上,可以将任何Python对象用作字典中的值.
在Python中,字典用放在花括号{}中的一系列 键:值 对表示.例:
dict1 = {'姓名':'张三','性别':'男','年龄':18} # 创建好了一个字典
# 访问字典的值 可以依次指定字典名和放在方括号内的键 如:
print (dict1['姓名']) # 输出: 张三
print (dict1['性别']) # 输出: 男
print (dict1['年龄']) # 输出: 18
print dict1 # 输出: 姓名:张三, 性别:男, 年龄:18
添加 键:值对 的方法.
# 添加 键:值
dict1['学校'] = '北大'
print dict1 # 输出: 姓名:张三, 性别:男, 年龄:18, 学校:北大
删除 键:值对 的方法
# 删除 键:值 del 字典名['键的值'] 例:
del dict1['学校']
print dict1 # 输出: 姓名:张三, 性别:男, 年龄:18
创建一个空的字典
dict2 = {} # 创建了一个空的字典
dict2['张三':60] # 添加了一对 键:值对
dict2['color':'blue'] # 添加了一对 键:值对
Python中的运算符
算数运算符
print (4+7) # 输出: 11 两数之和
print (4-7) # 输出: -3 两数之差
print (7-4) # 输出: 3 两数之差
print (4*7) # 输出: 28 两数之积
print (4**7) # 输出: 16384 求4的7次方
print (4/7) # 输出: 0.42857... 求商
print (4/7) # 输出: 2.33333... 求商
print (9%4) # 输出: 1 取余 取余数
print (7%4) # 输出: 3 取余 取余数
print (4//7) # 输出: 0 取整 取整数
print (7//4) # 输出: 1 取整 取整数
比较运算符
==, >, <, >=, <=, !=
== # 判断 == 两边是否相等 相等返回True 否则返回Flase
> # 判断 > 左边 是否大于 右边 大于返回True 否则返回Flase
< # 判断 < 左边 是否小于 右边 小于返回True 否则返回Flase
>= # 判断 >= 左边 是否大于等于 右边 大于等于返回True 否则返回Flase
<= # 判断 <= 左边 是否小于等于 右边 小于等于返回True 否则返回Flase
!= # 判断 != 左边 是否不等于 右边 不等于返回True 否则返回Flase
赋值运算符
=, +=, -=, *=, **=, /=, %=, //=
= # 将 = 右边 的值赋给 左边 的变量 例:
a = 4 # 给变量 a 赋值 4
print (a) # 打印 a 将输出: 4
+= # 将 += 两边的 值相加 再赋给左边的变量
b = 4 # 给变量 b 赋值 4
b += 2 # 相当于 b = b + 2 即输出: 6
-= # 将 -= 左边的值 减去右边的值 再赋给左边的变量
c = 4 # 给变量 c 赋值 4
c -= 1 # 相当于 c = c - 1 即输出: 3
*= # 同理上面的 加减赋值运算符 自行测试
/= # 同理上面的 加减赋值运算符 自行测试
%= # 同理上面的 加减赋值运算符 自行测试
//= # 同理上面的 加减赋值运算符 自行测试
逻辑运算符
and # 与
or # 或
位运算符
& # 与
| # 或
^ # 异或
Python表达式和语句
if控制流 判断语句
if
# 例:
sex = '男'
if sex == '男': # 如果性别为 男 则输出 进男厕所
print ('进男厕所')
# 无论前面判断是否正确 程序结束这句始终执行
print ('程序结束')
执行结果
进男厕所
程序结束
if else
# 例:
sex = '女'
if sex == '男': # 如果性别为 男 则输出进入男厕所
print ('进男厕所')
else: # 否则进入女厕所
print ('进女厕所')
# 无论前面判断是否正确 程序结束这句始终执行
print ('程序结束')
执行结果
进女厕所
程序结束
if elif elif else
# 例:
sex = '小孩'
if sex == '男':
print ('进男厕所')
elif sex == '女':
print ('进女厕所')
else:
print ('性别错误')
# 无论前面判断是否正确 程序结束这句始终执行
print ('程序结束')
执行结果
性别错误
程序结束
while控制流 循环语句
# 例:
flag = 3
while flag > 0:
print ('hello')
flag -= 1
print ('循环结束')
执行结果
hello
hello
hello
循环结束
for控制流 循环语句
使用for来遍历序列:
格式:
for 变量 in 序列:
# 例:
num = [1,2,3,4,5,6,7]
for i in num:
print (i)
print ('循环结束')
执行结果
1
2
3
4
5
6
7
循环结束
break 跳出循环语句
break语句用来终止所在的循环语句
# 例:
for x in ['A', 'B', 'C']:
for y in ['1', '2', '3']:
print (x+y)
break
执行结果
A1
B1
C1
continue 跳出循环语句
continue语句用来跳出所在循环体的本次循环
# 例:
for x in ['A', 'B', 'C']:
for y in ['1', '2', '3']:
if x == 'B':
continue
print (x+y)
执行结果
A1
A2
A3
C1
C2
C3