day04-循环和列表

1.for循环和range函数

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

for x in 'abcmnlkssa':
    print('hello world!')

for x in range(5):
    print('hello world!')

2.range函数 – 创建等差数列

  • 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
  • range(M,N) – 创建[M,N)的等差数列,差是1.(注意:H必须小于N)

    • range(5,10):5 6 7 8 9
    • range(-5,5):-5 -4 -3 -2 -1 0 1 2 3 4
  • 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
# 2) 9 10 11 12 13
# 3) 7 5 3 1
# 4) 5 4 3 2 1 0
# 5) 12 15 18 21


for x in range(11):
    print(x)

for x in range(9,14):
    print(x)

for x in range(7,0,-2):
    print(x)

for x in range(5,-1,-1):
    print(x)

for x in range(12,22,3):
    print(x)
  1. 累计求和

    • 案例:求1+2+3+…+100的和

      • 第一步:定义变量保存最后的和,变量默认值是0 — sum1 = 0

      • 第二步:通过for循环依次获取需要求和的每一个数据 — for x in range(1,101):

      • 第三步:在循环体中取到一个需要求和的数据,就往结果中加一个值 — sum1 += x

      sum1 = 0
      for x in range(1,101):
          sum1 += x
      print(sum1)
      
      
      # 练习1:求100+101+102+...+200的结果
      sum1 = 0
      for x in range(100,201):
          sum1 += x
      print(sum1)
      
      # 练习2:求nums中所有元素的和
      nums1 = [89, 10, 22, 11, 4, 8, 9]
      sum2 = 0
      for x in nums1:
          sum2 += x
      print(sum2)
      
      # 练习3:求nums中所有偶数的和
      nums2 = [89, 10, 22, 11, 4, 8, 9]
      sum3 = 0
      for x in nums2:
          if x % 2 == 0:
              sum3 += x
      print(sum3)
      
  2. 统计个数

  • 案例:统计nums中奇数的个数

    nums = [89, 10, 22, 11, 4, 8, 9]
    nu = 0
    for x in nums:
        if x % 2 != 0:
            nu += 1
    print(nu)
    

2.while循环

  • 语法

    while 条件语句:
        循环体
    
  • 执行过程:

    • 先判断条件语句是否成立,如果成立就执行循环体,执行循环完再判断条件是否成立,如果成立就继续执行循环体…,直到出现条件语句结果为False,结束整个循环。

      #案例:使用while循环控制程序打印5次'hello world!'
      x = 0
      while x<5:
          print('hello world!')
          x += 1
      
    • 使用建议:遇到循环的问题,优先考虑for循环,for循环解决不了的情况才选择while循环

3.continue和break

  1. continue – 结束一次循环

    • 在循环体的时候如果遇到了continue,那么这一次循环结束,直接进入下次循环
    for x in range(5):#只会打印5次hello,不会打印你好
        print('hello')
        continue
        print('你好')
        print('python')    
    
    #例
    for x in range(10): #0~9中,不能被3整除的数会被打印出来
        if x % 3 == 0:
            continue
        print(x)
    
  2. break – 结束整个循环

    • 执行循环的时候如果遇到break,整个循环直接结束
    for x in range(10):#只打印一次hello
        print('hello')
        break
        print('world')
        print('python')
    
  3. 当while遇到break

    • 初学者使用while循环的套路

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

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

num=random.randint(0,100)
ls=10
print('您一共有10次竞猜机会')
while True:
    if ls>0:
        number=int(input('请输入您猜想的数字:'))
        if num == number:
            print('恭喜您,猜中了!')
            break
        else:
            ls -= 1
            if number > num:
                print('猜大了')
            else:
                print('猜小了')
            print('您还有',ls,'次机会')
    else:
        break

4.列表

  • 如果需要在程序中同时处理多个数据,就可以使用列表
  1. 认识列表 – list

    • 列表是python系统中容器型数据类型的一种
    • 列表是容器,将[]作为容器的标志,里面多个元素用逗号隔开:[数据1、数据2、数据3,…]
    • 列表是可变的(列表支持增、删、改);列表是有序的(顺序影响结果)
    • 列表的元素:任何类型的数据都可以作为列表的元素,而且同一个列表中元素的类型可以不一样
    list = [10, 20, 30]
    #列表有序
    print([10,20] == [20,10]) #False
    
    list2 = [10,2.43,'abv',True]
    
    list3 = [10,20,[30,40]]
    #空列表
    list4 = []
    

5.增删改查

  1. 查 – 获取列表元素

    • 查单个 – 获取列表中的某一个元素
    1. 语法
    '''
    列表[下标]
    
    说明:
    列表  --  可以是保存列表的变量,也可以是一个具体的列表
    []    --  固定写法
    下标   --  列表中的元素在列表中的位置信息
              列表中的每个元素都有两个下标值:a.从前往后从0开始不断增加的下标值  b.从后往前从-1开始不断减小的下标值
    '''
    num=[100, 200, 300, 400]
    print(nums[2],nums[-2])
    
    movies = ['复仇者联盟', '盗梦空间', '怦然心动', '绿皮书', '肖生克的救赎', '触不可及']
    print(movies[0])
    print(movies[-2])
    print(movies[6])#超出范围
    
    • 遍历 – 一个一个地获取列表中所有的元素

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

    • 列表.append(元素) – 在列表的最后添加一个元素

      movies = ['复仇者联盟', '盗梦空间', '怦然心动', '绿皮书', '肖生克的救赎', '触不可及']
      print(movies)
      
      movies.append('泰坦尼克号')
      print(movies)
      
      movies.append('三傻大闹宝莱坞')
      print(movies)
      
      #练习1:提取nums中所有的偶数
      nums = [89, 78, 90, 64, 55, 71, 34]
      # [78, 90, 64, 34]
      nums4=[]
      for x in nums:
          if x % 2 == 0:
              nums4.append(x)
      print(nums4)
      # 练习2:提取nums中所有元素的个位数
      nums2 = [89, 78, 90, 64, 55, 71, 34]
      # [9, 8, 0, 4, 5, 1, 4]
      
      nums3 = []
      for x in nums2:
          nums3.append(x % 10)
      print(nums3)
      
    • 列表.insert(下标,元素) – 将元素插入到指定下标对应的元素前

    movies = ['复仇者联盟', '盗梦空间', '怦然心动', '绿皮书', '肖生克的救赎', '触不可及']
    print(movies)
    
    movies.insert(2,'泰坦尼克号')
    print(movies)
    
    movies.insert(-1,'恐怖游轮')
    print(movies)
    
  3. 删 — 删除列表中的某个元素

    • del 列表[下标] — 删除列表中指定下表对应的元素
    movies = ['复仇者联盟', '盗梦空间', '怦然心动', '绿皮书', '肖生克的救赎', '触不可及']
    print(movies)
    
    del movies[1]
    print(movies)#会删掉'盗梦空间'
    
    """
    movies.remove('盗梦空间')
    print(movies)
    
    这种方式也能删除,但是如果列表中有多个相同元素,那么它会删除最前面的那个
    """
    
    • 列表.pop() — 取走列表中最后一个元素
    • 列表.pop(下表) – 取走列表中下表对应的元素
    movies = ['复仇者联盟', '盗梦空间', '怦然心动', '绿皮书', '肖生克的救赎', '触不可及']
    print(movies)
    
    movies.pop()
    print(movies)
    #movies = ['复仇者联盟', '盗梦空间', '怦然心动', '绿皮书', '肖生克的救赎']
    
    movies.pop(0)
    print(movies)
    #movies = ['盗梦空间', '怦然心动', '绿皮书', '肖生克的救赎']
    
  4. 改 — 修改某个元素的值

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值