python基础2

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)函数

用法

  1. range(a,b) 函数,你可以生成了一个【取头不取尾】的整数序列
  2. 循环输出n句话
  3. 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语句和循环语句怎么运行

应用

  • 两个值作比较

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-14YCzpMP-1637503490102)(C:\Users\win10\AppData\Roaming\Typora\typora-user-images\image-20210810165656378.png)]

  • 数值作比较

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语句生效了。')
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值