day04-循环和列表

一、for 循环

  1. 语法:

​ for 变量 in 序列:
​ 循环体

  1. range函数 - 创造等差数列
  • range(N) - 创建[0,N)的等差数列,差是1。

    • range(6):0 1 2 3 4 5
  • range(M,N) - 创建[M,N)的等差数列,差是1.(注意:M<N)

    • range(5,10):5 6 7 8 9
  • range(M,N,step) - 创建[M,N)的等差数列,差是step

    • range(2,10,2):2 4 6 8
    • range(10,2,-2):10 8 6 4
# 练习:使用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)
# 案例1:求1+2+3+……+100
sum1 = 0
for x in range(1,101):
    sum1 += x
print(sum1)
# 案例2:求所有学生的总成绩
scores = [98, 80, 70, 67, 55, 99, 81]
total_scores = 0
for x in scores:
    total_scores += x
print(total_scores)
# 练习1:求100+101+102+...+200的结果
sum2 = 0
for x in range(100,201):
    sum2 += x
print(sum2)
# 练习2:求nums中所有元素的和
nums = [89, 10, 22, 11, 4, 8, 9]
total_score2 = 0
for x in nums:
    total_score2 += x
print(total_score2)
# 练习3:求nums中所有偶数的和
nums = [89, 10, 22, 11, 4, 8, 9]
total_score3 = 0
for x in nums:
    if x % 2 == 0
    	total_score3 += x
print(total_score3)
# 练习4:统计100以内所有能被3整除的个数
count = 0
for x in  range(1,100):
    if x % 3 == 0:
        count += 1
print(count)

二、 while 循环

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

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

  3. continue - 结束一次循环

  • 在循环体中如果遇到了continue,那么这一次循环结束,直接进入下一次循环
for x in range(5):
    print('hello')  #只打印5次你好
    continue
    print('你好')
    
for x in range(10):
    if x % 3 == 0:
        continue
    print(x)   #1 2 4 5 7 8
  1. break - 结束整个循环
  • 执行循环体的时候如果遇到break,整个循环直接结束(循环体剩下的部分不执行,也不再进入下一次循环)
for x in range(1, 10):
    print(x)           # 1 2  
    if x % 4 == 2
    	break
  • 当while遇到break

    • while True:
      需要重复执行的操作
      if 循环结束的条件:
      break
  • 只能使用while循环的场景

    • 死循环
    • 循环次数不确定:程序员在写代码的时候无法确定循环次数,因为次数由用户行为控制
    # 案例:提示用户输入密码,直到输入正确为止
    pass_word = '123456'
    while true:
        value = input('请输入密码:')
        if value == pass_word
        	break
    # 练习:写一个猜数字游戏
    # 产生一个0~100的随机数。然后提示用户输入数字,直到输入正确为止;输入错误的时候给出对应的提示。
    # 产生一个0~100的随机数。
    from random import randint
    number = randint(0, 100)
    while true:
        a=int(input('请输入一个整数(0~100):'))
        if a > number:
            print('大了,再小点儿!')
        elif a < number:
            print('小了,再大点儿')
        else:
            print('恭喜你,猜对了!')
            break
        
    

    三、列表

    1、认识列表 - list

  • 列表是系统类型中容器型数据类型的一种.

  • 列表是容器,将[]作为容器的标志,里面多个元素用逗号隔开:[数据1, 数据2, 数据3,……]

  • 列表是可变的(支持增,删,改),列表是有序的

  • 列表的元素:任何类型的数据都可以作为列表的元素,而且同一列表中的元素类型可以不一样(列表也可以作为元素)

    2、查

    2.1查单个 - 获取列表中的某一个元素
  • 语法:

    • 列表[下标] - 获取列表中指定下标对应的元素

    • 说明:列表 - 可以是保存列表的变量,也可以是一个具体的列表
      [] - 固定写法
      下标 - 列表中的元素在列表中的位置信息
      列表中的每个元素都有两个下标值:

         > 从前往后从0开始不断增加的下标值
         > 从后往前从-1开始不断减小的下标值
      
movies = ['复仇者联盟', '盗梦空间', '怦然心动', '绿皮书', '肖生克的救赎', '触不可及']
print(movies[1])  #盗梦空间
print(movies[3])  #绿皮书
2.2遍历 - 一个一个地获取列表中所有的元素
  • 语法:
    for 变量 in 列表:
    循环体(变量依次取到的就是列表中的元素)
# 案例:统计scores中不及格学生的个数
scores = [89, 78, 67, 10, 45, 99, 50]
count = 0
for x in scores:
    if x < 60:
        count += 1
print(count)

3、增 - 添加元素

3.1列表.append(元素) - 在列表的最后添加一个元素
# 练习1:提取nums中所有的偶数
nums = [89, 78, 90, 64, 55, 71, 34]
num1 = []
for x in nums:
    if x % 2 == 0:
        num1.append(x)
print(num1)
# 练习2:提取nums中所有元素的个位数
nums = [89, 78, 90, 64, 55, 71, 34]
num2 = []
for x in nums:
     num2.append(x % 10)
print(num2)
3.2列表.insert(下标, 元素) - 将元素插入到列表中指定下标对应的元素前

4、删 - 删除列表中的某个元素

4.1del 列表[下标] - 删除列表中指定下标对应的元素

movies = ['复仇者联盟', '盗梦空间', '怦然心动', '绿皮书', '肖生克的救赎', '触不可及']
del movies[1]
print(movies)  #'盗梦空间', '怦然心动', '绿皮书', '肖生克的救赎', '触不可及'
4.2列表.remove(元素) - 删除列表中指定元素(如果元素有多个,会删最前面的那一个)
4.3 pop
  • 列表.pop() - 取走列表中最后一个元素并且返回
  • 列表.pop(下标) - 取走列表中指定下标对应的元素并且返回

5、改 - 修改某个元素的值

5.1列表[下标] = 新元素 - 修改列表中指定下标对应的元素为新元素
movies = ['复仇者联盟', '盗梦空间', '怦然心动', '绿皮书', '盗梦空间', '肖生克的救赎', '触不可及']
movies[1] = '阿甘正传'
print(movies)   #'复仇者联盟', '阿甘正传', '怦然心动', '绿皮书', '盗梦空间', '肖生克的救赎', '触不可及'

素的值

5.1列表[下标] = 新元素 - 修改列表中指定下标对应的元素为新元素
movies = ['复仇者联盟', '盗梦空间', '怦然心动', '绿皮书', '盗梦空间', '肖生克的救赎', '触不可及']
movies[1] = '阿甘正传'
print(movies)   #'复仇者联盟', '阿甘正传', '怦然心动', '绿皮书', '盗梦空间', '肖生克的救赎', '触不可及'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值