第四章 操作列表
1.循环
注意缩进 巧妙使用单复数形式,便于理解
for语句结尾不要忘记加冒号“:”!!!
magicians=['alice','david','carolina']
for magician in magicians: #冒号勿忘
print(magician)
2.创建数值列表
(1).生成数 range()
eg: range(1,5) 生成1~4
原因:差一行为 记忆方法:相当于左闭右开区间?
也可以只指定一个参数,默认从0开始 eg:range(6) 生成0~5
for value in range(1,5):
print(value) #只打印1~4
for value in range(6):
print(value) #默认从0开始打印
(2).使用range()函数来生成数字列表
①使用range和list
用list将range生成的数转换为列表
在使用range时,可指定步长 eg:even_number = list(range(2,11,2))
注意:使用list()时,无需先创建空列表
numbers=list(range(1,6))
print(numbers) #结果为[1,2,3,4,5]
even_numbers=list(range(2,11,2)) #指定了步长
print(even_numbers) #结果为[2,4,6,8,10]
list可将字符串,元组,集合,字典或其他可迭代序列转换为列表
若对象为字典,则仅将键转换。
②仅使用range
此时需先创建一个空列表,再通过循环添加元素
#eg:打印1-10的平方
squares=[] #先创建空列表
for value in range(1,11):
squares.append(value**2) #不使用临时变量,直接计算
print(squares)
(3).简单数字计算
求最值与求和
print(min(squares),max(squares),sum(squares))
numbers=list(range(1,1000001))
print(sum(numbers)) #求1~1000000的和
(4).列表解析
学习其形式,会看、会写 注意:这里的for语句末尾没有冒号
squares=[value**2 for value in range(1,11)]
print(squares)
3.使用列表的一部分
(1).切片
形式如下,同样为左闭右开区间,可省略首或末
可在第三位指定步长,默认为1,若为-1则表示倒着取
s='hello world'
print(s[3:7]) #lo w【包含下标3,不含下标7】
print(s[1:]) #ello world【从下标1开始,到结尾】
print(s[:4]) #hell【从开始,到下标4的前一个,不含下标4】
print(s[-4:-1]) #orl【从倒数第4个,到倒数第1个(不含倒数第1个)】
print(s[-5:]) #world【从倒数第5个,到结尾】
print(s[:-8]) #hel【从头开始,到倒数第8个(不含倒数第8个)】
print(s[6:10:2]) #wr【步长为2,不含下标10】
print(s[10:6:-1]) #dlro【步长为负数,倒着取,不含下标6】
print(s[-1:-5:-1]) #dlro【倒着取,从倒数第1个,到倒数第5个(不含倒数第5个)】
print(s[-9::-1]) #leh【倒着取,从倒数第9个,到开始】
print(s[:-5:-1]) #dlro【倒着取,从结尾,到倒数第5个(不含倒数第5个)】
(2).遍历切片
在原有的for循环基础上增加切片形式
for magician in magicians[1:4]:
print(magician.title())
(3).复制列表
可以通过使用包含整个列表的切片 [ : ],将原列表的副本赋给新列表
注意:不可以直接将原列表直接赋给新列表,这会导致两个列表相互关联,一改皆改
有点类似于C++中的“引用传递”,会一改皆改
new_magicians=magicians[:] #必须使用“[:]”
print(new_magicians)
4.元组
定义:不可变的列表(适用于在整个生命周期内不变的一组值)
元组为圆括号,列表为方括号,元组的遍历操作同列表
若尝试修改元组的元素,会报错
但是可以给存储元组的变量赋值,即重新定义一个元组,把原来的覆盖
第五章 if语句
1.条件测试
检查是否相等时忽略大小写
若要检查多个条件,可用and和or(适当加圆括号以改善可读性)
布尔表达式:即条件测试 eg:game_active = True
检查特定值是否包含在列表中:可用 in 和 not in
for new_user in new_users:
if new_user in current_users:
print(f"{new_user} error")
else:
print(f"{new_user} right")
2.if语句的语法结构
if - elif - else 适用于只执行一个代码块的情况
一系列独立if语句 适用于要执行多个代码块的情况
注意:if,elif,else语句后面不要忘记加冒号
3.使用if语句处理列表
①检查特殊元素
if (a == 某个值) :
②确定列表不是空的
if后直接加列表名
cars=[]
if cars: #if后直接跟列表名,若列表非空则为True,为空则为False
for car in cars:
print(car)
else:
print('empty')
③使用多个列表
循环中嵌套if语句
第六章 字典
1.字典的概念与基本操作
字典是一系列键值对
访问值,添加键值对,修改值,创建空字典(用户提供数据或能自动生成大量键值对)
删除键值对:del 字典名[键名]
由类似对象组成的字典:常用的存储格式如下
rivers={'nile':'egypt',
'yangtze':'china',
'amazon':'brazil', #在最后一个键值后面也加上逗号,以便后续添加键值
}
使用方法get()来访问值:
.get(键,不存在时的返回值)
若没有指定第二个参数且该键不存在,则返回None
print(alien_0.get('color','No')) #若无键则返回指定信息
今日随手记
注意True的T一定要大写,否则会报错 eg:reverse=True
ctrl+C 停止输出或关闭输出窗口