• Python全栈自动化系列之Python编程基础(for循环)


     

    for循环(遍历循环):

    1)在python中for循环可以遍历任何可迭代对象,如列表、字符串等

    语法:
      for i in xxx:
        # 循环体

    需求点:当前有10位同学,放在一列表中,请区分等级

         小于60:不及格
         60-79:及格
         80-100:优秀

      # 成绩列表
      li = [78,32,55,77,88,90,54,24,67,39]
      # for循环遍历成绩列表,并区分等级
      for i in li:
        if i < 60:
          print("你的成绩是{},不及格".format(i))
        elif i <80:
          print("你的成绩是{},及格".format(i))
        elif i <= 100:
          print("你的成绩是{},优秀".format(i))

    运行结果:

     2)内置函数range:左闭右开

    range(n):默认生成一个 0到n-1的整数序列,对于这个整数序列,我们可以通过list()函数转化为列表类型的数据
    range(n,m):默认生成一个n到m-1的整数序列,对于这个整数序列,我们可以通过list()函数转化为列表类型的数据
    range(n,m,k):相当于其他函数里面的for循环,n,初始值, m,结束值 K,步长,会生成初始值为n,结束值为m-1,递减或者递增步长K
    两个参数:范围
    三个参数:范围,步长
    注意点:rangen返回的数据是支持使用for进行遍历的,也能够进行下标取值和切片(切片返回的还是range类似数据)

    3)for循环案例

    需求点:计算1+2+3+....+100结果

      """
      while循环实现
      """
      i = 1
      sum = 0
      while i <= 100:
        sum = sum + i
        i += 1
      print(sum)

    **************************

      """
      for循环实现
      """
      s = 0
      for i in range(1,101):
        s += i
      print(s)

    运行结果:

     4)for 循环也支持使用break、continue

    需求点:使用for循环打印100遍hello python ,打印到第50遍之后,后面的不在打印

      for i in range(100):
        print("这是第{}遍打印:hello python".format(i + 1))
        if i + 1 == 50:
        break # 终止循环
      print("---------------end---------------")

    运行结果:

     for i in range(100):
        print("这是第{}遍打印:hello python".format(i + 1))
        if i + 1 == 50:
        continue # 中止当前本轮循环
      print("---------------end---------------")

    运行结果:

     5)for循环所使用的场景

    1、遍历列表2、遍历字符串3、遍历字典4、遍历元组

    注意点:1.直接遍历字典:遍历出来是字典的键

      dic = {"name":"zl","sex":"男"}
      for value in dic:
        print(value)

    运行结果:

     2.遍历字典的值,使用values函数

      dic = {"name":"zl","sex":"男"}
      for i in dic.values():
        print(i)

    运行结果:

    3.同时遍历字典的键以及值,使用items函数

      dic = {"name":"zl","sex":"男"}
      for k,v in dic.items():  # 使用元组拆包
        print("Key",k)

        print("Value",v)

    运行结果:

     6)元组拆包

      c,d = (10,20)
      print(c)
      print(d)

      tu = (11,22,33,44)
      aa,bb,cc,dd = tu
      print(aa)
      print(bb)
      print(cc)
      print(dd)

    运行结果:

     7)for-else语句:for循环遍历结束之后会执行else,如果使用break跳出循环,则不会执行

    需求点:注册小案例

      
      需求:设计有个注册程序,注册的时候,提示用户输入账号密码,输入完了之后,校验该账户之前是否注册过,如果没有
      注册过,则添加到users中保存,若注册过,则提示用户已经注册过

      #先定义已存在的用户

      users = [{"user":"py1","pwd":"123"},{"user":"py2","pwd":"111"}]
      name = input("请输入账号:")
      pwd = input("请输入密码:")

      #判断账户是否已经注册?
      for item in users:
        if name == item["user"]:
        print("该用户已经注册")
        break
      # 待for循环遍历完所有注册过的列表后再执行else语句
      else:
        print("注册成功")
        # 把账户密码添加到users中
        users.append({"user":name,"pwd":pwd})

    8)for循环的多重嵌套

    需求点:输出99乘法表,结果如下:(提示嵌套for循环,格式化输出)

      for i in range(1,10): # 决定行
        for j in range(1,i+1): # 决定列
          print("{} * {} = {:<4}".format(i,j,i*j),end="")
        print() # 换行

    运行结果:

     9)列表推导式(帮助我们快速生成列表)

    需求:快速生成一个[“pageq”,"page2","page3"]

      li = []
      for i in range(1,4):
        num = "page{}".format(i)
        li.append(num)
      print(li)

    使用列表推导式:

      li1 = ["page{}".format(i) for i in range(1,4)]
      print(li1)

    运行结果:

  • 相关阅读:
    在网易和百度实习之后,我才明白了这些事
    从Java小白到收获BAT等offer,分享我这两年的经验和感悟
    曾经做的一个JS小游戏——《Battle City》
    适配器(Adapter)模式
    装饰器(Decorator)模式
    Java IO
    JDBC中驱动加载的过程分析
    从PipedInputStream/PipedOutputStream谈起
    从InputStream到ByteArrayInputStream
    JDK中的动态代理
  • 原文地址:https://www.cnblogs.com/bluesea-zl/p/12182735.html
Copyright © 2020-2023  润新知