day06-循环和列表

day06-循环和列表

1.for循环

语法:

for 变量 in 序列:
循环体

说明
for - 关键字、固定写法
变量 - 变量名(已经定义过或者没有定义过的变量都可以)
in - 关键字、固定写法
序列 - 任何容器型数据类型的数据,例如:字符串,列表
: - 固定写法
循环体 - 结构上,和for保持一个缩进的一条或者多条语句(至少一条)
逻辑上,循环体就是需要重复执行的代码
执行过程:让变量依次去序列中取值,一个一个的取,取完为止,每取一个值就依次执行循环体。
for循环循环次数由序列中元素的个数决定。

练习:利用range创建以下几个等差数列

1.0、1、2、3…、55

2.所有两位数对应的等差数列:10~99

3.1、3、5、7、9

4.11、22、33、44

5.9、8、7、6、5、4、3、2、1、0

6.10、8、6、4

range(56)
range(10, 100)
range(1, 10, 2)
range(11, 45, 11)
range(9, -1, -1)
range(10, 3, 2)

2.while循环

while循环
语法:
while 条件语句:
循环体
执行过程:
不断判断条件是否为True,为True就执行循环体,直到条件语句的结果为False,整个循环结束

pw = '123123'
pw_is_not_right = True
while pw_is_not_right:
    a = input('请输入密码')
    if a == pw:
        print('密码正确')
        pw_is_not_right = False
    else:
        print('密码错误,请重新输入')

for循环和while循环的选择:循环次数确定的时候用for,不确定用while

3.列表

1.系统类型,是容器型数据类型(同时保存多个数据);将[]作为容器的标志,里面多个元素(容器中每个独立的数据)用逗号隔开:[数据1,数据2,数据3,数据4]
2.列表是可变的(元素的个数和元素的值可变 - 支持删改操作)列表是有序(支持索引操作)

# 列表有序,所以顺序影响结果
print([10, 20, 30] == [20, 10, 30])  # False
# 集合无序,所以顺序不影响结果
print({10, 20, 30} == {20, 10, 30})  # True
# 列表的元素
list1 = [10, 1.23, True, None, 'abc', [1, 2]]
print(list1)
# 空列表
list2 = []
print(list2)

练习:求最高分和平均分

scores = [89, 59, 68, 37, 88, 65, 46]
# 平均分
print(sum(scores)/len(scores))

# 最高分
print(max(scores))

3.获取元素

a.单个

1.语法:
列表[索引]
2.说明
a.列表 - 具体的一个列表或者保存列表的变量
b.[] - 固定写法
c.索引 - 又叫下标;索引指的是元素在有序序列中的位置信息
列表一旦确定了,那么列表中每个元素的索引就确定了
索引的确定方式:从前往后索引值从0开始不断加一;从后往前从-1开始往前不断减一

num = [90, 89, 77, 99, 50]
print(num[2], num[-3])
print([90, 89, 77, 99, 50][2])

names = ['张三', '李四', '老王']
print(names[-1])

scores = [99, 97, 95, 88, 80, 79, 73, 66, 62, 57, 40]
# 问题1.打印最高分
print(max(scores))
# 问题2.打印最低分
print(min(scores))
# 问题3.打印中位数
if len(scores) % 2 == 0:
    print((scores[len(scores) // 2], scores[len(scores) // 2 - 1])//2)
else:
    print(scores[(len(scores)-1)//2])

b.切片

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

开始下标 - 确定从哪个位置开始获取
结束下标 - 确定结束的位置
步长 - 确定获取方向和取的时候怎么取
说明:
a.怎么确定切片的结果
第一步:看从开始下标到结束下标的方向和步长对应的方向是否一致(步长为正表示从前往后取,步长为负表示从后往前取)如果不一致结果一定是空列表
第二步:确定有效范围(开始下标对应的元素去得到,结束下标对应的元素取不到)
第三步:按照步长的方向和绝对值来获取元素
方向:为正在有效范围内从后往前取;为负在有效范围内从后往前取
绝对值:绝对值为1,1个1个的取,绝对值为2,取一个跳一个取一个;绝对值为3,取1个跳两个取1个
b.怎么写切片表达式获取到需要的数据

切片的省略写法:
a.省略步长:
列表[开始下标:结束下标]
省略步长就相当于步长为1
b.省略开始下标:
print(names(:-3:-1) - 如果步长为正从第一个元素开始,如果步长为负从最后一个元素开始
c.省略结束下标:列表[开始下标::步长] - 如果步长为正一直取到最后一个元素,如果步长为负一直取到第一个元素

names = ['光辉', '小法', '泽拉斯', ' 无极剑圣', '芈月', '龙龟', '牛头', '狗头', '鳄鱼', '猫咪']
print(names[0:-1:3])            # 光辉 无极剑圣 牛头
print(names[-2:1:2])            # []
print(names[3:9:-3])            # []
print(names[8:-9:-4])           # 鳄鱼 芈月
print(names[1:-2:3])            # 小法 芈月 狗头
# 1.['小法', '泽拉斯', '无极剑圣']
print(names[1:4:1])
# 2.['光辉', '泽拉斯', '芈月']
print(names[0:5:2])
# 3.['无极剑圣', '狗头']
print(names[3:-2:4])
# 4.['鳄鱼', '龙龟', '泽拉斯']
print(names[-2:1:-3])

c.遍历

方法1:直接获取元素
for 变量 in 列表:
循环体
方法2:先获取每个元素的下标,然后再根据下标获取元素
for 变量 in range(len(列表)):
循环体(变量是元素对应的下标)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值