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

今日内容总结

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

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

    • 语法结构(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的嵌套code

      # 需求:溜达的时候,迎面走来我的,若是是个帅气的小哥哥,就上前要微信,不然就嫌弃地走掉。若是要到微信,就在一块儿散步,不然就回家撸猫
      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种)ip

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

      """ 需求:登陆认证
      一、输入帐号、密码,登陆成功,提示登陆成功
      二、若是登陆三次,帐号密码都不对,锁定帐号
      三、登陆成功后,能够进行命令操做
      四、登陆成功后,输入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:从一个可迭代的集合或对象中依次取出当中的元素,每取一个元素,执行一次操做,直到将集合或对象中的元素取完。(每次执行的操做是同样的,可跟元素无关,也可跟元素有关)。input

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

    • 语法结构(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="\t")
          print()
      
      for i in range(9, 0, -1):
          for j in range(1,i+1):
              print(f"{j}*{i}={j*i}", end="\t")
          print()
    • 关于for的习题

      """一、请实现如下图形的打印
          *
         ***
        *****
       *******
      *********
      """
      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

相关文章
相关标签/搜索