目录
2、基础进阶
列表
列表名=[数据1,数据2,..,数据n]
list1 = ['小明',18,1.70]
print(list1)
列表提取单个元素
- 偏移量:对列表元素的位置编号。
- 列表的偏移量从0开始计算(从左到右)
格式
列表名[索引]
students = ['小明','小红','小刚']#小明,小红,小刚的偏移量分别是0,1,2
print(students[0])
print(students[2])
提取多个元素
用冒号切片
冒号:左右空,取到头;左取右不取
列表名[a:b]
list2 = [5,6,7,8,9]
print(list2[:])# 打印出[5,6,7,8,9]
print(list2[2:])# 打印出[7,8,9]
print(list2[:2])# 打印出[5,6]
print(list2[1:3])#打印出[6,7]
print(list2[2:4])#打印出[7,8]
给列表添加或删除元素
添加格式
列表名.append(内容 )
students = ['小明','小红','小刚']
students.append('小美')
print(students)#['小明', '小红', '小刚', '小美']
删除格式
del 列表名[元素的索引]
students = ['小明','小红','小刚','小美']
del students[1]
print(students)
pop()函数
- list1.pop():默认删除最后一个元素,并返回该元素的值。
- list1.pop(0):也可指定删除某个元素,并返回该元素的值。
print('\n移除(pop)又取又删:')
list1 = ['0','1','2','3']
print(list1.pop()) # 默认删除最后一个元素,并返回该元素的值。
print(list1)
print(list1.pop(0)) # 也可指定删除某个元素,并返回该元素的值。
print(list1)
列表的修改
赋值语句
students = ['小明','小红','小刚','小美']
students[1]='小'
print(students)
列表的增加
list1 = ['松']
list2 = ['竹']
list3 = ['梅']
list = list1 + list2 +list3#符号'+'只能⽤在列表之间,不能⽤在列表和元素之间
print(list)
字典
字典名={键:值,...,键n:值n}
scores = {'小明': 95, '小红': 90, '小明': 90}
print(scores)
提取元素
字典名[字典的键]
scores = {'小明':95,'小红':90,'小刚':90}
print(scores['小红'])
删除字典键值对
del 字典名[键]
album = {'周杰伦':'七里香','王力宏':'心中的日月'}
del album['周杰伦']
print(album)
新增键值对
字典名[键] = 值
scores = {'小明':95,'小红':90,'小刚':90}
del scores['小刚']
scores['小刚']=92
scores['小美']=85
print(scores)
- 列表有序,要用偏移量定位;字典无序,便通过唯一的键来取值。
提取字典所有的键
dict.key()
group = {'师父':'唐三藏', '大师兄':'孙行者', '二师兄':'猪八戒', '沙师弟':'沙和尚'}
print(group.keys())#打印出dict_keys(['师父', '大师兄', '二师兄', '沙师弟']);元组形式
print(list(group.keys()))#打印出['师父', '大师兄', '二师兄', '沙师弟'];通过list()函数将元组转化为列表的形式
提取字典中所有的值
dict.values()
group = {'师父':'唐三藏', '大师兄':'孙行者', '二师兄':'猪八戒', '沙师弟':'沙和尚'}
print(group.values())#打印出dict_values(['唐三藏', '孙行者', '猪八戒', '沙和尚'])
提取字典中所有的键值对
dict.items()
group = {'师父':'唐三藏', '大师兄':'孙行者', '二师兄':'猪八戒', '沙师弟':'沙和尚'}
print(group.items())#打印出dict_items([('师父', '唐三藏'), ('大师兄', '孙行者'), ('二师兄', '猪八戒'), ('沙师弟', '沙和尚')])
存储为字典
- 语法:dict[键]=值
d={}
d['班长']={'小红':90,'小明':96}
print(d)
字典列表嵌套
列表嵌套列表
students = [['小明','小红','小刚','小美'],['小强','小兰','小伟','小芳']]
print(students[1][3])#提取小芳
字典嵌套字典
scores = {
'第一组':{'小明':95,'小红':90,'小刚':100,'小美':85},
'第二组':{'小强':99,'小兰':89,'小伟':93,'小芳':88}
}
print(scores['第一组']['小刚'])#提取小刚的成绩
字典列表相互嵌套
提取键或者偏移量
# 最外层是大括号,所以是字典嵌套列表,先找到字典的键对应的列表,再判断列表中要取出元素的偏移量
students = {
'第一组':['小明','小红','小刚','小美'],
'第二组':['小强','小兰','小伟','小芳']
}
print(students['第一组'][3])
#取出'第一组'对应列表偏移量为3的元素,即'小美'
##########################################分割线
# 最外层是中括号,所以是列表嵌套字典,先判断字典是列表的第几个元素,再找出要取出的值相对应的键
scores = [
{'小明':95,'小红':90,'小刚':100,'小美':85},
{'小强':99,'小兰':89,'小伟':93,'小芳':88}
]
print(scores[1]['小强'])
#先定位到列表偏移量为1的元素,即第二个字典,再取出字典里键为'小强'对应的值,即99。
例子遍历
movies = {
'妖猫传':['黄轩','染谷将太'],
'无问西东':['章子怡','王力宏','祖峰'],
'超时空同居':['雷佳音','佟丽娅'],
}
actor = input('你想查询哪个演员?')
for movie in movies: # 用 for 遍历字典
actors = movies[movie] # 读取各个字典的主演表
if actor in actors:
print(actor + '出演了电影' + movie)
for…in…循环
格式
for i in [1,2,3,4,5]:#i就是遍历列表的元素; i是“空房间”
print(i)
##########################################分割线
dict = {'日本':'东京','英国':'伦敦','法国':'巴黎'}
for x in dict:#发现i会逐个接待字典中的每一个【键】
print(x)
##########################################分割线
for i in '吴承恩':
print(i)
- for循环遍历字典时,接待字典中的每一个【键】
- for循环遍历列表时,接待列表的元素
- for循环遍历字符串时,接待的是字符串的每个组成
- 循环次数明确
range(x)
函数
用法
range(a,b)
函数,你可以生成了一个【取头不取尾】的整数序列- 循环输出n句话
range(a,b,n)
的意思是:从a数到b(取头不取尾),步长为n
for i in range(13,17):#表示从13到16的整数列表
print(i)
##########################################分割线
for i in range(11):#i从0到10
print('书恒走的第'+str(i)+'天,想他')#循环11次
##########################################分割线
for i in range(0,10,3):从0数到9(取头不取尾),步长为3
print(i)
while循环
循环次数可不明确
while 条件:
内容
##########################################分割线
a = 0 #先定义变量a,并赋值
while a < 5: #设定一个放行条件:a要小于5,才能办事
a = a + 1 # 满足条件时,就办事:将a+1
print(a) # 继续办事:将a+1的结果打印出来
##########################################分割线
password = '' # 变量password用来保存输入的密码
while password != '816':
password = input('请尝试输入密码:')
print('欢迎回家')
布尔值
- 计算机的逻辑判断,只有两种结果,就是
True
(英文意思是“真”)和False
(英文意思是“假”),没有灰色地带。这个计算真假的过程,叫做【布尔运算】。 - 决定if语句和循环语句怎么运行
应用
- 两个值作比较
- 数值作比较
bool()函数
bool()
函数来查看一个数据会被判断为真还是假。这个函数的用法与type()
函数相似(还有印象吧~),在bool()
函数括号中放入我们想要判断真假的数据,然后print出来即可
# 请阅读代码后再直接运行
print('以下数据判断结果都是【假】:')
print(bool(''))
print(bool(None))
print('以下数据判断结果都是【真】:')
print(bool(True))
print(bool('abc'))
布尔值之间的运算
运算符 | 释义 | 作用 |
---|---|---|
in | 属于 | 如果值在指定序列⾥,条件为真 |
not in | 不属于 | 如果值不在指定序列⾥,条件为真 |
and | 且 | 连接两个布尔值,如果两个都为真,该条件才为真 |
or | 或 | 连接两个布尔值,如果有⼀个为真,该条件即为真 |
not | 非 | 反逻辑状态,a为True,not a则为False,反之亦然 |
a=[1,2,3,4,5]
print(0 in a)#判断为假
print(1 in a)#判断为真
print(0 not in a)#判断为真
print(1 not in a)#判断为假
b=True
print(not b)#判断为假
4种语句
break语句
break的意思是“打破”,是用来结束循环的,一般写作if...break
# break语句搭配for循环
for...in...:
...
if ...:
break
# break语句搭配while循环
while...(条件):
...
if ...:
break
while True:
p = input('请输入你的密码:')
if p == '小龙女':
break
print('通过啦')
continue语句
continue的意思是“继续”。这个子句也是在循环内部使用的。当某个条件被满足的时候,触发continue语句,将跳过之后的代码,直接回到循环的开始。
# continue语句搭配for循环
for...in...:
...
if ...:
continue
...
# continue语句搭配while循环
while...(条件):
...
if ...:
continue
...
while True:
q1 = input('第一问:你一生之中,在什么地方最是快乐逍遥?')
if q1 != '黑暗的冰窖':
continue
print('答对了,下面是第二问:')
q2 = input('你生平最爱之人,叫什么名字?')
if q2 != '梦姑':
continue
print('答对了,下面是第三问:')
q3 = input('你最爱的这个人相貌如何?')
if q3 == '不知道':
break
print('都答对了,你是虚竹。')
pass语句
跳过,什么都不做
# 请体验一下报错,然后把pass语句加上
a = int(input('请输入一个整数:'))#a>=100的时候,跳过,什么都不做
if a >= 100:
pass
else:
print('你输入了一个小于100的数字')
else语句
-
不仅可以和if语句搭配,也可以和for语句,while语句搭配
-
for i in range(5): a = int(input('请输入0来结束循环,你有5次机会:')) if a == 0: print('你触发了break语句,循环结束,导致else语句不会生效。') break else: print('5次循环你都错过了,else语句生效了。')