day6-循环和列表

day6-循环和列表

一、循环

1、for循环

'''
1)语法:
for 变量 in 序列:
        循环体

2)说明:
序列 - 任何容器数据类型的数据,例如:字符串、列表、字典、元组、集合、迭代器、生成器,range等

3)for循环循环次数由序列中元素的个数决定。
       
'''

2、while循环

'''
while循环的固定写法:
while True:
    需要重复执行的操作
    if 循环结束的条件
        break
'''
# 案例
pw = '123'
while True:
    a = input('请输入密码:')
    if a == pw:
        print('密码正确')
        break

二、列表

1、认识列表

(1)系统类型,是容器型数据类型(同时保留多个数据):[数据1,数据2,…]

(2)列表是可变的(元素的个数和元素的值可变 - 支持增删改操作;列表是有序(支持索引操作)

# 列表有序
print([1,2,3] == [2,1,3])     #False
#列表无序
print({1,2,3} == {2,1,3})     #True

(3)列表的元素

list = [1,2.3,True,None,'A',[1,2]]
print(list)     # 6

(4)空列表

list = []
print(list)

2、获取元素

(1)查单个元素 - 一次获取列表中的一个元素

  • 语法:列表[索引] - 获取列表中指定索引对应的元素
  • 说明:索引又叫下标,是指元素在有序序列中的位置信息

​ 索引的确定方式:从前往后索引值从0开始不断加1;从后往前从-1不断减1

nums = [90, 91, 92, 93, 94, 95]
print(nums[1], nums[-5])   # 91 91
  • 练习
# 练习:已知scores中保存的是一个班级所有学生的分数(分数已经按照从大小排好序)
scores = [99, 97, 95, 88, 80, 79, 73, 66, 62, 57, 40]

# 问题1:打印最高分
print(0)

# 问题2:打印最低分
print(-1)

# 问题3:打印中位数(如果scores中分数的个数是偶数个,中位数打印2个)
a = len(scores)
if a % 2 != 0:
    a = a // 2
    print(scores[a])
else:
    a = a // 2
    print(scores[a - 1], scores[a])

(2)切片

  • 完整语法:列表[开始下标:结束下标:步长]
  • 切片结果:

​ a. 从开始下标到结束下标的方向和步长对应的方向是否一致(步长为正表示从前往后取,步长为负表示从后往前取),如果不一致结果一定是空列表

​ b. 确定有效范围(开始下标对应的元素取得到,结束下标对应的元素取不到)

​ c. 按照步长的方向和绝对值获取元素

​ 方向:为正再有效范围内从前往后取,为负在有效范围内从后往前取

names = ['猫', '狗', '兔', '松鼠', '鱼', '凤凰', '飞鸟']
print(names[1:4:2])  # 不为空
print(names[-1:2:3])  # []
print(names[2:-3:1])  # 不为空
print(names[2:-3:-1])  # []
print(names[-1:1:-2])  # ['飞鸟', '鱼', '兔']
  • 切片省略写法

​ a. 省略步长:列表[开始下标:结束下标] - 相当于步长为1

​ b. 省略开始下标:列表[:结束下标:步长] - 如果步长为正从第一个元素开始;为负从最后一个元素开始

​ c. 省略结束下标:列表[开始下标::步长] - 如果步长为正一直取到最后一个元素;为负一直取到第一个元素

names = ['猫', '狗', '兔', '松鼠', '鱼', '凤凰', '飞鸟']

# 省略步长
print(names[3:-2])  # == print(names[3:-2:1]) ['松鼠', '鱼']
# 省略开始下标
print(names[:-3:-1])  # ['飞鸟', '凤凰']
print(names[:5])  # ['猫', '狗', '兔', '松鼠', '鱼']
# 省略结束下标
print(names[3::-1]) # ['松鼠', '兔', '狗', '猫']

(3)遍历 - 一个一个的获取列表中所有的元素

  • 方法1:直接获取元素
'''
语法:
for 变量 in 列表:
    循环体
'''
# 案例:统计列表中不及格的人数
scores = [30, 60, 40, 70, 80, 90]
count = 0
for i in scores:
    if i < 60:
        count += 1
print(count)         # 2
  • 方法2:先获取每个元素的下标,然后再根据下标再获取元素
'''
for 变量 in range(len(列表)):
    循环体(变量是元素对应的下标)
'''
# 案例:
names = ['猫', '狗', '兔', '松鼠', '鱼', '凤凰', '飞鸟']
for i in range(len(names)):
    print(i, names[i])
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值