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

相關文章
相關標籤/搜索