• python基础-流程控制(if,while,for)


    今日内容总结

    ——流程控制(if,while,for)

    • if:用来判断事物的对错、真假、是否执行。根据不同的情况判断,条件满足执行某条件下的语句

      • 语法结构(3种)

        # 第一种,只有if结构。条件表达式成立,执行代码块
        if 条件表达式:
            代码块
        
        # 第二种,if……else……条件表达式成立,执行代码块1,否则执行代码块2
        if 条件表达式:
            代码块1                                                                                                                                          
        else:
            代码块2
            
        # 第三种,if……elif……else……
        # 如果条件表达式1成立,执行代码块1;不成立,判断条件表达式2,如果条件表达式2成立,执行代码块2,否则执行代码块3。其中,elif可以有多个。
        if 条件表达式1:
            代码块1
        elif 条件表达式2:
            代码块2
        else:aD
            代码块3
        
      • if的嵌套

        # 需求:溜达的时候,迎面走来个人,如果是个帅气的小哥哥,就上前要微信,否则就嫌弃地走掉。如果要到微信,就在一起散步,否则就回家撸猫
        gender = 'male'   
        age = 21
        is_smart = True    # 帅气的小哥哥
        is_success = True  # 要到微信
        if gender == 'male' and 30 > age > 20 and is_smart:
            print("哈喽,小哥哥,加个微信呗")
            if is_success:
                print("那咱一起散步吧……")
            else:
                print("回家撸猫!")
        else:
            print("都没有帅气的小哥哥,回家回家!")
        
      • 关于if的习题

        # 给定一个不超过5位的正整数,判断其有几位
        num = input("请输入整数:").strip()
        num_int = eval(num)
        count = 0
        if num_int > 100:
            if num_int > 10000:
                count = 5
            elif num_int > 1000:
                count = 4
            else:
                count = 3
        else:
            if num_int > 10:
                count = 2
            else:
                count = 1
        print(f"您输入的是{count}位数")
        
    • while:条件判断,当符合条件,重复执行操作。注意条件的编写,防止陷于死循环

      • 语法结构(2种)

        # 第一种 while
        while 条件表达式:
            需重复执行的代码块
            
        # 第二种 while + else
        while 条件表达式:
            需重复执行的代码块
        else:		
        # 这个代码块是while中的操作正常结束后,才可以执行的代码。
        # 如果重复操作被break中断,此处代码不会被操作
            正常执行重复操作结束后,执行的代码块
        
      • while的嵌套

        """ 需求:登录认证
        1、输入账号、密码,登录成功,提示登录成功
        2、如果登录三次,账号密码都不对,锁定账号
        3、登录成功后,可以进行命令操作
        4、登录成功后,输入exit时,退出
        """
        user_name = "dawn"		# 存储的用户名
        password = "1234"		# 存储的密码
        count = 0		# 登录失败的计数器
        tag = True		# 执行重复登录操作的条件
        
        while tag:
            name_inp = input("Please input your name>>>:")		
            pwd_inp = input("Please input your password>>>:")	
            if user_name == name_inp and password == pwd_inp:
                print("登录成功")
                while tag:
                    # 登录成功后,如果用户输入 exit 命令,退出操作,否则一直执行命令
                    cmd = input(">>>:")
                    if cmd == "exit":
                        tag = False
                    else:
                        print(f"执行{cmd}命令")
            else:
                print("登录失败")		
                count += 1		# 登录失败,计数器次数增加一次
            if count == 3:
            # 每次登录后,判断登录失败的次数是否等于3次,如果是,锁定账号,停止操作
                print("锁定账户")
                tag = False
        
      • 关于while的习题

        # 习题:任意输入一个不超过5位的正整数,依次输出个位、十位、百位、千位、万位的数字。思考:如果是依次输出万位、千位、百位、十位、个位的数字呢?
        num = input("请输入整数:").strip()
        num_int = eval(num)
        count = 0
        print(num_int)
        while True:
            print(num_int % 10)
            num_int = num_int // 10
            count += 1
            if num_int == 0:
                break
        print(f"你输入的位数是:{count}")
        
    • for:从一个可迭代的集合或对象中依次取出当中的元素,每取一个元素,执行一次操作,直到将集合或对象中的元素取完。(每次执行的操作是一样的,可跟元素无关,也可跟元素有关)。

      for是一种不依赖于索引的取值方式

      • 语法结构(2种)

        # 第一种 for 元素 in 可迭代的集合或者对象:需执行的操作
        for element in iteration:
            需要执行的代码块
        
        # 第二种 for + else
        for element in iteration:
            需要执行的代码块
        else:
            # 如果在取元素的过程中,被break中断,此处的代码不会被执行
            正常将集合或对象中的元素取完后,执行的代码块
        
      • for的嵌套

        # 打印九九乘法表
        for i in range(1, 10):
            for j in range(1, i + 1):
                print(f"{j}*{i}={i*j}", end="	")
            print()
        
        for i in range(9, 0, -1):
            for j in range(1,i+1):
                print(f"{j}*{i}={j*i}", end="	")
            print()
        
      • 关于for的习题

        """1、请实现以下图形的打印
            *
           ***
          *****
         *******
        *********
        """
        for i in range(1,6):
            for j in range(5 - i):
                print(" ", end="")
            for z in range(2*i-1):
                print("*",end="")
            print()
            
        line_str = input("请输入打印的行数:")
        line = int(line_str)
        for i in range(1, line+1):
            print(" " * (line - i),end="")
            print("*" * (i * 2 - 1))    
        
    • continue:跳过当前循环,继续下一次循环

      # 请依次输出1,2,3,5,6,7(4不输出)
      count = 0
      while count < 7:
          count += 1
          if count == 4:
              continue
          print(count)
      
    • break:结束/中断本层循环

      # 依次输出1,2,3,遇到4就不再输出
      count = 0
      while count < 10:
          count += 1
          if count == 4:
              break
      

    ——内置方法(len和range)

    • len():获取长度

      • 数字类型的元素没有 len()
      • 字符串 str 获取的是字符串字符的个数
      • 列表 List 获取的是列表中元素的个数
      • 字典 dict 获取的是字典中键值对的个数
    • range():获取一个可迭代的集合

      • 在 python 2中,使用 range() 返回的是一个列表

      • 在python 3中,使用 range() 返回的是一个可迭代的集合

      • 使用方式有两种:

        • range(stop)

          for i in range(4):
          	print(i)
          # 结果为:0,1,2,3
          

          根据结果可以看出range()默认是从0开始的,不包含4本身,典型的顾头不顾尾

        • range(start,stop[,step])

          for i in range(1,8,2)
          	print(i)
          # 结果为:1,3,5,7
          

          根据结果可以知晓,start 表示取数的起始值,stop 表示终止值,step 表示步长,可以理解为每次取数时的累加值。其中[step]表示这个参数是选填,可以不使用,默认步长是1

  • 相关阅读:
    新型监控告警工具prometheus(普罗米修斯)入门使用(附视频讲解)
    Nginx、OpenResty和Kong的基本概念与使用方法
    Kubernetes网络方案Flannel的学习笔记
    新型监控告警工具prometheus(普罗米修斯)的入门使用(附视频讲解)
    超级账本HyperLedger:Fabric nodejs SDK的使用(附视频讲解)
    超级账本HyperLedger:Fabric使用kafka进行区块排序(共识,附视频讲解)
    超级账本HyperLedger:Fabric Golang SDK的使用(附视频)
    超级账本HyperLedger:Fabric的Chaincode(智能合约、链码)开发、使用演示
    超级账本HyperLedger:Fabric源码走读(一):源代码阅读环境准备
    超级账本HyperLedger:Fabric从1.1.0升级到1.2.0
  • 原文地址:https://www.cnblogs.com/xiaodan1040/p/11801334.html
Copyright © 2020-2023  润新知