day4-循环和列表

本文介绍了Python中的for循环和range函数的用法,包括等差数列的创建和循环遍历。接着讲解了累计求和的案例,如计算序列和、学生总成绩。还探讨了while循环的结构和应用场景,以及continue和break在循环中的作用。此外,文章强调了列表作为数据存储的重要性,并展示了如何进行列表的增删改查操作,包括获取元素、添加元素、删除元素和修改元素值。
摘要由CSDN通过智能技术生成

一、for循环和range函数

1.for循环
"""
for 变量 in 序列号:
	循环体
"""

for x in range(6):
    print('hello world!')
2.range函数 - 创建等差数列
"""
1)range(N)    -   创建[0, N)的等差数列,差是1
                  例:range(6): 0 1 2 3 4 5
                  range(11): 0 1 2 3 4 5 6 7 8 9 10
                  
2)range(M,N)  -   创建[M, N)的等差数列,差是1。(注意:M必须小于N)
                  range(5, 10): 5 6 7 8 9
                  range(-5, 5): -5 -4 -3 -2 -1 0 1 2 3 4
                  
3)range(M, N, step)     -   创建[M, N),差是step
                            range(2, 10, 2): 2 4 6 8
                            range(10, 2, -2): 10 8 6 4
"""

for x in range(5):
    print(x)
    
for x in range(-5, 5):
    print(x)
    
for x in range(10, 2, -2):
    print(x)

# 练习:使用range函数生成以下等差列
# 1) 0 1 2 3 4 5 6 7 8 9 10
for x in range(11):
    print(x)
    
# 2) 9 10 11 12 13
for x in range(9, 14):
    print(x)
    
# 3) 7 5 3 1
for x in range(7, 0, -2):
    print(x)

# 4) 5 4 3 2 1 0
for x in range(5, -1, -1):
    print(x)
    
# 5) 12 15 18 21
for x in range(12, 22, 3):
    print(x)
3.累计求和
# 案例1:求1+2+3+...+100的和
# 1)定义变量保存最后的和,变量默认值是0
sum = 0
# 2)通过for循环依次获取需要求和的每一个数据
for x in range(1, 101)# 3)在循环体中取到一个需要求和的数据,就往结果中加一个值
	sum += x
print(sum)

# 案例2:求所有学生的总成绩
scores = [98, 80, 70, 67, 55, 99, 81]
# 98 + 80 + 70 + 67 + 55 + 99 + 81
total_score = 0
for x in score:
    total_score += x
print(total_score)

# 练习1:求100+101+102+...+200的结果
sum = 0
for x in range(100, 201):
    sum += x
print(sum)

# 练习2:求nums中所有元素的和
nums = [89, 10, 22, 11, 4, 8, 9]
nums1 = 0
for x in nums:
    nums1 += x
print(nums1)

# 练习3:求nums中所有偶数的和
nums = [89, 10, 22, 11, 4, 8, 9]
nums1 = 0
for x in nums:
    if x % 2 == 0:
        nums1 += x
print(nums1)
4.统计个数
# 案例2:统计100以内所有能被3整除的数的个数
num = 0
for x in range(1, 100):
    if x % 3 == 0:
        num += 1
print(num)

# 练习:统计nums中奇数的个数
nums = [89, 10, 22, 11, 4, 8, 9]
num = 0 
for x in nums:
    if x % 2 != 0:
        num += 1
print(num)

二、while循环

1.while循环
"""
语法:
while 条件语句:
	循环体

执行过程:
先判断条件语句是否成立,如果成立就执行循环体,执行完循环体再判断条件语句是否成立,成立就再执行循环体... 
以此类推,直到条件语句的结果为False整个循环结束。
"""

# 案例:使用while循环控制程序打印5次'hello world!'
x = 0
while x < 5:
    print('hello world!')
    x += 1
    
for x in range(5):
    print('hello world!')

# 使用建议:遇到循环的问题,优先考虑for循环,for解决不了的情况才选择while。

三、continue和break

continue和break是只能在循环体中使用的关键字

1.continue - 结束一次循环
"""
在循环体的时候如果遇到了continue,那么这一次循环结束,直接进入下次循环
"""
for x in range(5):
    print('hello!')
    continue
    print('你好')
    
for x in range(10):       # x = 0 1 2 3 4 5 6 7 8 9
    if x % 3 == 0:
        continue
    print(x)
    
"""
x = 0: if x % 3 == 0  -> if 0 % 3 == 0 -> if True: continue (这次循环结束)
x = 1: if x % 3 == 0  -> if 1 % 3 == 0 -> if False
       print(x)  -> print(1)
x = 2: if x % 3 == 0  -> if 2 % 3 == 0  -> if False
       print(x)  -> print(2)
x = 3: if x % 3 == 0  -> if 3 % 3 == 0  -> if True: continue (这次循环结束)
x = 4: ...
"""
# 1 2 4 5 7 8

for x in range(10):     # x = 0 1 2 3 4 5 6 7 8 9
    if x % 3 == 0:
        print(x)              
2.break - 结束整个循环
"""
执行循环体的时候如果遇到break,整个循环直接结束(循环体剩下的部分不执行,也不再进入下一次循环)
"""
for x in range(5):
    print('hello')
    break
    print('你好')

for x in range(1, 10):     # x = 1 2 3 4 5 6 7 8 9
    print(x)
    if x % 4 == 0:
        break
# 1 2
3.当while遇到break
# 初学者使用while循环的套路:
"""
while True:
    需要重复执行的操作
    if 循环结束的条件:
        break
"""
4.使用while循环的场景
"""
1)死循环
2)循环次数不确定:程序员在写代码的时候无法确定循环次数,因为次数由用户行为控制
"""

# 案例:提示用户输入密码,直到输入正确为止
password = '123456'
while True;
	value = input('请输入密码:')
    if value == password:
        break
        
# 练习:写一个猜数字游戏
# 产生一个0~100的随机数。然后提示用户输入数字,直到输入正确为止;输入错误的时候给出对应的提示。
from random import randit
number = randint(0, 100)

while True:
    value = int(input('请输入一个整数(0-100):'))
    if value > number:
        print('大了,再小点儿!')
    elif value < number:
        print('小了,再大点儿')
    else:
        print('恭喜你,猜对了!')
        break
        
        

四、列表

#问题:定义变量保存6个学生成绩
# 方法1:不使用列表
s1 = 89
s2 = 90
s3 = 77
s4 = 69
s5 = 90
s6 = 52

# 求平均分
print((s1 + s2 + s3 + s4 + s5 + s6) / 6)

# 求最高分
max1 = s1
if s2 > max1:
    max1 = s2
if s3 > max1:
    max1 = s3
if s4 > max1:
    max1 = s4
if s5 > max1:
    max1 = s5
if s6 > max1:
    max1 = s6
print(max1)

# 方法2:用列表
scores = [89, 90, 77, 69, 90, 52]

# 求平均分
print(sum(scores)/len(scores))

# 求最高分
print(max(scores))

# 结论:如果需要在程序中同时处理多个数据,就可以使用列表

# 1. 认识列表 - list
"""
列表是系统类型中容器型数据类型中的一种。
列表是容器,将[]作为容器的标志,里面多个元素用逗号隔开:[数据1, 数据2, 数据3, ...]
列表是可变的(列表支持增、删、改);列表是有序的(顺序影响结果;支持下标操作)
列表的元素:任何类型的数据都可以作为列表的元素,而且同一个列表中元素的类型可以不一样
"""
list1 = [10, 20, 30]

# 列表有序
print([10, 20] == [20, 10])     # False

# 任何类型的数据都可以是列表的元素
list2 = [10, 2.34, 'abc', True]
print(list2)

list3 = [10, 20, [30, 40]]

# 空列表
list4 = []

五、增删改查

1.查 - 获取列表元素
# 1)查单个 -   获取列表中的某一个元素
"""
语法:
列表[下标]   -  获取列表中指定下标对应的元素

说明:
列表      -   可以是保存列表的变量,也可以是一个具体的列表
[]       -   固定写法
下标      -   列表中的元素在列表中的位置信息。
             列表中的每个元素都有两个下标值:a.从前往后从0开始不断增加的下标值  b.从后往前从-1开始不断减小的下标值
"""
nums = [100, 200, 300, 400]
print(nums[2], nums[-2])

movies = ['复仇者联盟', '盗梦空间', '怦然心动', '绿皮书', '肖生克的救赎', '触不可及']
print(movies[0])
print(movies[-2])

# print(movies[6])

# 2)遍历  -   一个一个地获取列表中所有的元素
"""
语法:
for 变量 in 列表:
    循环体(变量依次取到的就是列表中的元素)
"""
movies = ['复仇者联盟', '盗梦空间', '怦然心动', '绿皮书', '肖生克的救赎', '触不可及']
for x in movies:
    print(x)

# 案例:统计scores中不及格学生的个数
scores = [89, 78, 67, 10, 45, 99, 50]
count = 0
for x in scores:
    if x < 60:
        count += 1
print(count)
2.增 - 添加元素
# 1)列表.append(元素)   -   在列表的最后添加一个元素
movies = ['复仇者联盟', '盗梦空间', '怦然心动', '绿皮书', '肖生克的救赎', '触不可及']
print(movies)

movies.append('泰坦尼克号')
print(movies)

movies.append('三傻大闹宝莱坞')
print(movies)

print('--------------------------------华丽的分割线-------------------------------------')
# 练习1:提取nums中所有的偶数
nums = [89, 78, 90, 64, 55, 71, 34]
# [78, 90, 64, 34]
new_nums = []
for x in nums:
    if x % 2 == 0:
        new_nums.append(x)
print(new_nums)

# 练习2:提取nums中所有元素的个位数
nums = [89, 78, 90, 64, 55, 71, 34]
# [9, 8, 0, 4, 5, 1, 4]
new_nums = []
for x in nums:
    new_nums.append(x % 10)
print(new_nums)

print('--------------------------------华丽的分割线-------------------------------------')
# 2) 列表.insert(下标, 元素)  -   将元素插入到列表中指定下标对应的元素前
movies = ['复仇者联盟', '盗梦空间', '怦然心动', '绿皮书', '肖生克的救赎', '触不可及']
print(movies)

movies.insert(2, '泰坦尼克号')
print(movies)

movies.insert(-1, '恐怖游轮')
print(movies)
3.删 - 删除列表中的某个元素
# 1)del 列表[下标]      -   删除列表中指定下标对应的元素
movies = ['复仇者联盟', '盗梦空间', '怦然心动', '绿皮书', '肖生克的救赎', '触不可及']
print(movies)

del movies[1]
print(movies)

# 2)列表.remove(元素)  -  删除列表中指定元素(如果元素有多个,会删最前面的那一个)
movies = ['复仇者联盟', '盗梦空间', '怦然心动', '绿皮书', '肖生克的救赎', '触不可及']
print(movies)

movies.remove('盗梦空间')
print(movies)

movies = ['复仇者联盟', '盗梦空间', '怦然心动', '绿皮书', '盗梦空间', '肖生克的救赎', '触不可及']
print(movies)

movies.remove('盗梦空间')
print(movies)

# 3)
# 列表.pop()      -   取走列表中最后一个元素并且返回
# 列表.pop(下标)    -   取走列表中指定下标对应的元素并且返回
movies = ['复仇者联盟', '盗梦空间', '怦然心动', '绿皮书', '盗梦空间', '肖生克的救赎', '触不可及']
print(movies)

result = movies.pop()
print(movies, result)

movies = ['复仇者联盟', '盗梦空间', '怦然心动', '绿皮书', '盗梦空间', '肖生克的救赎', '触不可及']
print(movies)

result = movies.pop(0)
print(movies, result)
4.改 - 修改某个元素的值
# 4.改  - 修改某个元素的值
# 列表[下标] = 新元素      -   修改列表中指定下标对应的元素为新元素

movies = ['复仇者联盟', '盗梦空间', '怦然心动', '绿皮书', '盗梦空间', '肖生克的救赎', '触不可及']
print(movies)

movies[1] = '阿甘正传'
print(movies)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值