全國青少年軟件編程等級考試標准 (Python 語言) V1.0.1 二級標准詳解


二級標准

 

一、 了解與掌握如下的python編程的進階知識,並會使用。

  1. 知道如下幾種數據類型:列表、元組、字典、字符串、 range、集合六大內置核心數據類型;

    • python中內置數據類型:

    • 其中列表、元組、字典、字符串、 range、集合是二級考試中的重點,列表、元組、字符串、 range是重點的重點

  2. 理解列表類型的概念,掌握它的基礎用法及操作:訪問/更 新、獲取元素個數、遍歷、轉換為列表型數據、添加和刪 除、連接、排序等等;

    • 定義:是一個有序且可變的容器,在里面可以存放多個不同類型的元素

    • 基礎用法及操作:訪問/更 新、獲取元素個數、遍歷、轉換為列表型數據、添加和刪 除、連接、排序

      • 訪問(查詢)

        name_list = [1, "大白", True, '小白']
         print(name_list)
         ​
         #輸出結果:[1, '大白', True, '小白']
      • 獲取元素個數

        name_list = [1, "大白", True, '小白']
         print(len(name_list))
         ​
         #輸出結果: 4

         

      • 轉換

        name = "德瑪西亞之力"
         name_list = list(name)
         print(name_list)
         ​
         #輸出結果:['德', '瑪', '西', '亞', '之', '力']

         

      • 遍歷

        • for

          #實例1
           name = "德瑪西亞之力"
           name_list = list(name)
           for data in name_list:
               print(data)
           print(name_list)
           ​
           #輸出結果:
           '''
           德
           瑪
           西
           亞
           之
           力
           ['德', '瑪', '西', '亞', '之', '力']
           ​
           '''
          #實例2
           name_list = [1, "大白", True, '小白']
           for data in name_list:
               print(data)
           print(name_list)
           ​
           #輸出結果
           '''
           1
           大白
           True
           小白
           [1, '大白', True, '小白']
           ​
           '''

           

        • while

          #實例1
           name_list = []
           while True:
               name = input("請輸入參加游戲的人名:")
               if name == "王老師":
                   print("大佬來了,游戲結束")
                   break
               name_list.append(name)
           print("游戲失敗名單:{}".format(name_list))
           ​
           #輸出結果:
           '''
           請輸入參加游戲的人名:大白
           請輸入參加游戲的人名:二白
           請輸入參加游戲的人名:三白
           請輸入參加游戲的人名:王老師
           大佬來了,游戲結束
           游戲失敗名單:['大白', '二白', '三白']
           ​
           '''

           

        • 根據需求串講

          #需求
           '''
           設計一個不多於10人的游戲
           1.游戲開始,由玩家輸入參加游戲的人數,並判斷輸入的是否是數字
           2.在第一個條件的基礎上判斷輸入的數字是否大於10,如果大於10人參加游戲,提示用戶"請輸入小於10的數字!"
           3.如果參加游戲人數小於10人,玩家依次輸入參加游戲的人名,並添加到空列表  name_list = []
           4.當輸入的名字是"王老師"提示用戶:王老師來了,游戲結束,輸出游戲失敗名單
           '''
           ​
           #答案1(不好)
           name_list = []
           n = 10
           num = input("輸入參加游戲的人數:")
           if not num.isdecimal():
               print("請輸入整數!")
           elif int(num) > n:
               print("請輸入小於10的數字!")
           else:
               for m in range(int(num)):
                   name = input("請輸入參加游戲的人名:")
                   if name == "王老師":
                       print("{}來了,游戲結束".format(name))
                       break
                   name_list.append(name)
           print("游戲失敗名單:{}".format(name_list))
           ​
           #答案2
           name_list = []
           n = 10
           num = input("輸入參加游戲的人數:")
           while True:
               if not num.isdecimal():
                   print("請輸入整數!")
                   break
               if int(num) > n:
                   print("請輸入小於10的數字!")
                   break
               for m in range(int(num)):
                   name = input("請輸入參加游戲的人名:")
                   if name == "王老師":
                       print("{}來了,游戲結束".format(name))
                       break
                   name_list.append(name)
               print("游戲失敗名單:{}".format(name_list))

           

      • 更新(包括增加、刪除、修改)

        • append()追加:在列表的最后增加元素,只能一次追加一個元素

          name_list = [1, "大白", True, '小白']
           name_list.append("小小白")
           print(name_list)
           ​
           #輸出結果:[1, '大白', True, '小白', '小小白']
        • 批量追加,將一個列表中的元素逐一添加另外一個列表

          • 列表相加(連接)

            name_list1 = [1, "大白", True, '小白']
             name_list2 = ["小小白", 2]
             print(name_list1 + name_lsit2)
             ​
             #輸出結果:[1, '大白', True, '小白', '小小白', 2]
          • 列表*整數

            name_list = [1, "大白", True, '小白'] * 2
             print(name_list)
             ​
             #輸出結果: [1, '大白', True, '小白', 1, '大白', True, '小白']
          • extend()

            name_list = [1, "大白", True, '小白']
             name_list.extend(["小小白", 2])
             print(name_list)
             ​
             #輸出結果:[1, '大白', True, '小白', '小小白', 2]
          • insert()插入

            0    1      2      3
             name_list = [1, "大白", True, '小白']
             name_list.insert(2, "中白")
             print(name_list)
             ​
                       0     1      2      3      4
             #輸出結果:[1, '大白', '中白', True, '小白']

             

        • 刪除

          • remove()刪除

            name_list = [1, "大白","中白", True, '小白']
             name_list.remove("中白")
             print(name_list)
             ​
             #輸出結果:[1, '大白', True, '小白']
          • pop()根據索引剔除單個元素

            0    1     2      3      4
             name_list = [1, "大白","中白", True, '小白']
             name_list.pop(2)
             print(name_list)
             ​
             #輸出結果:[1, '大白', True, '小白']

             

          • clear()清空列表

            name_list = [1, "大白", True, '小白']
             print(name_list)
             name_list.clear()
             print(name_list)
             ​
             #輸出結果:[1, '大白', True, '小白']
             #        []
      • 排序

        • 數字排序

          num_list = [11, 22, 4, 5, 11, 99, 88]
           print(num_list)
           num_list.sort()  # 讓num_list從小到大排序
           print(num_list)
           num_list.sort(reverse=True)  # # 讓num_list從大到小排序
           print(num_list)
           ​
           #輸出結果:
           '''
           [11, 22, 4, 5, 11, 99, 88]
           [4, 5, 11, 11, 22, 88, 99]
           [99, 88, 22, 11, 11, 5, 4]
           ​
           '''
           #注意:排序時內部元素無法進行比較時,程序會報錯(盡量數據類型統一)。
        • 反轉原列表

          num_list = [11, 22, 4, 5, 11, 99, 88]
           print(num_list)
           num_list.reverse()
           print(num_list)
           ​
           #輸出結果:
           '''
           [11, 22, 4, 5, 11, 99, 88]
           [88, 99, 11, 5, 4, 22, 11]
           ​
           '''
      • 嵌套

        num_list = [11, False, "大小白", [1, "大白", True, '小白']]
         print(num_list[3])
         print(numlist[3][2])
         print(numlist[-2][-2])
         num_list[3].append([22, "小小白"])
         print(num_list)
         ​
         #輸出結果:
         '''
         [1, '大白', True, '小白']
         True
         小
         [11, False, '大小白', [1, '大白', True, '小白', [22, '小小白']]]
         ​
         '''

         

  3. 理解元組類型的概念,理解元組和列表的不同,掌握它的基 礎用法及操作:元組的聲明與賦值、元組的訪問與更新、元 組的遍歷、添加、刪除、排序等等;

    • 定義:是一個有序且不可變的容器,在里面可以存放多個不同類型的元素。

      d1 = (1)  # 1  只有一個元素的時候最后沒有","  得到的不是元組
       d2 = (1,) # (1,)
    • 元組和列表的區別

      元組是不可變的容器

      列表是可變的容器

    • 基礎用法及操作

      • 聲明

        #聲明空元組
         v1 =()
         #賦值
         v1 = (11,22,33)
         v2 = ("李傑","Alex")
         v3 = (True,123,"Alex",[11,22,33,44])
         print(v1, v2, v3)
         ​
         #輸出結果:
         '''
         (11, 22, 33) ('李傑', 'Alex') (True, 123, 'Alex', [11, 22, 33, 44])
         '''
      • 元組的長度

        v3 = (True,123,"Alex",[11,22,33,44])
         print(len(v3))
         ​
         #輸出結果:4

         

      • 元組的訪問

        • 索引

          v3 = (True,123,"Alex",[11,22,33,44])
           print(v3[0])
           print(v3[1])
           print(v3[2])
           print(v3[3])
           ​
           #輸出結果:
           '''
           True
           123
           Alex
           [11, 22, 33, 44]
           ​
           '''
        • 切片

          v3 = (True,123,"Alex",[11,22,33,44])
           print(v3[0:2])
           print(v3[:-1])
           print(v3[2:])
           ​
           #輸出結果:
           '''
           (True, 123)
           (True, 123, 'Alex')
           ('Alex', [11, 22, 33, 44])
           ​
           '''
      • 元組相加

        v1 = (11,22,33)
         v2 = ("李傑","Alex")
         v3 = v1 + v2
         print(v3)
         ​
         #輸出結果:
         '''
         (11, 22, 33, '李傑', 'Alex')
         相加得到的是新元組
         '''

         

      • 元組相乘

        v1 = (11,22,33)
         v2 = v1 * 2
         print(v2)
         ​
         #輸出結果:
         '''
         (11, 22, 33, 11, 22, 33)
         相加得到的是新元組
         '''

         

      • 元組的更新、刪除、排序:由於元組是不可變的容器,所以不能更新、刪除、排序。

        更新、刪除、排序也只能得到新元組,原來的元組不變

         

      • 轉換

        name = "德瑪西亞之力"
         name_list = tuple(name)
         for data in name_list:
             print(data)
         print(name_list)
         ​
         #輸出結果:
         '''
         德
         瑪
         西
         亞
         之
         力
         ('德', '瑪', '西', '亞', '之', '力')
         ​
         '''
         ​
         ---------------------------------------
         v3 = [True,123,"Alex",[11,22,33,44]]
         data = tuple(v3)
         print(data)
         ​
         #輸出結果:(True, 123, 'Alex', [11, 22, 33, 44])

         

      • 元組的遍歷

        v3 = (True,123,"Alex",[11,22,33,44])
         for v in v3:
             print(v)
             
         #輸出結果:
         '''
         True
         123
         Alex
         [11, 22, 33, 44]
         ​
         '''
      • 嵌套

        num_list = (11, False, "大小白", [1, "大白", True, '小白'])
         print(num_list[3])
         print(num_list[3][2])
         print(num_list[-2][-2])
         num_list[3].append([22, "小小白"])
         print(num_list)
         num_list[3][4][0] = 11
         print(num_list)
         ​
         ​
         #輸出結果:
         '''
         [1, '大白', True, '小白']
         True
         小
         (11, False, '大小白', [1, '大白', True, '小白', [22, '小小白']])
         (11, False, '大小白', [1, '大白', True, '小白', [11, '小小白']])
         ​
         '''

        注意:元組是不可變的,列表是可變的,元組里嵌套列表時,列表中的元素是可以變的

  4. 理解字符串類型的概念,掌握它的基礎用法及操作:字符串 的分割、結合、替換、檢索、長度獲取。

    • 定義:是不可變有序的,一般表示文本信息

      name = "德瑪西亞之力"
       name1 = '德瑪西亞之力'
       name2 = "德瑪西亞'之力"
       name3 = '德瑪西亞"之力'
       name4 = """
       德瑪西亞之力
       德瑪西亞"之力
       """
       print(name)
       print(name1)
       print(name2)
       print(name3)
       print(name4)
       ​
       #輸出結果:
       '''
       德瑪西亞之力
       德瑪西亞之力
       德瑪西亞'之力
       德瑪西亞"之力
       ​
       德瑪西亞之力
       德瑪西亞"之力
       ​
       ​
       '''
    • 基礎用法及操作

      • 加法(連接)

        name1 = "德瑪西亞"
         name2 = "之力"
         print(name1 + name2)
         ​
         #輸出結果:德瑪西亞之力
      • 乘法(重復)

        name1 = "德瑪西亞之力"
         name2 = name * 2
         print(name2)
         ​
         #輸出結果:德瑪西亞之力德瑪西亞之力

         

      • 字符串的分割

        name = "德瑪西亞|之力"
         data = name.split("|")
         print(data)
         ​
         ​
         #得到的是一個列表
         #輸出結果:['德瑪西亞', '之力']
      • 替換

        字符串是不可變的類型,所以替換字符串中的內容是生成新的字符串

        name = "德瑪西亞之力"
         data = name.replace("之", "大")
         print(data)
         ​
         #輸出結果:
         '''
         德瑪西亞之力
         德瑪西亞大力
         ​
         '''
      • 格式化format()

        name = "{}可以殺了{},但是打不過{}"
         data = name.format("德瑪西亞", "李白", "貂蟬")
         print(data)
         ​
         #輸出結果:德瑪西亞可以殺了李白,但是打不過貂蟬
         ​
         ​
         #-----------------------------------------
         name = "{1}可以殺了{0},但是打不過{2}"
         data = name.format("德瑪西亞", "李白", "貂蟬")
         print(data)
         ​
         #輸出結果:李白可以殺了德瑪西亞,但是打不過貂蟬
         ​
         ​
         #-----------------------------------------
         name = "{player3}可以殺了{player1},但是打不過{player2}"
         data = name.format(player1="德瑪西亞", player2="李白", player3="貂蟬")
         print(data)
         ​
         #輸出結果:貂蟬可以殺了德瑪西亞,但是打不過李白
         ​
      • 長度獲取

        name = "德瑪西亞之力"
         print(len(name))
         ​
         #結果輸出:6

         

      • 轉義符 \

        要求輸出:我愛玩"王者榮耀"

        正確方式

        data = "我愛玩\"王者榮耀\""
         print(data)
         ​
         #結果輸出:我愛玩"王者榮耀"
         ​
         #-----------------------------
         data = '我愛玩"王者榮耀"'
         print(data)
         ​
         #結果輸出:我愛玩"王者榮耀"
         ​
         #-----------------------------
         data2 = 'I\'am a teacher'
         print( data2)
         ​
         #結果輸出:I'am a teacher
         ​
         #-----------------------------
         data = '我愛玩\t"王者榮耀"'
         data1 = '我愛玩\n"王者榮耀"'
         data2 = '我愛玩\r"王者榮耀"'
         data3 = '我愛玩\\"王者榮耀"'
         print(data)
         print(data1)
         print(data2)
         print(data3)
         ​
         #結果輸出:
         '''
         我愛玩 "王者榮耀"
         我愛玩
         "王者榮耀"
         "王者榮耀"
         我愛玩\"王者榮耀"
         ​
         '''

        錯誤方式

         

         

二、 會編寫較為復雜的Python程序,掌握Python編程的控制語句

  1. 理解選擇結構語句的功能和寫法,能夠完成簡單選擇結構的程序;

    • if else :如果條件成立或者不成立,執行代碼段1,否則執行代碼段2

      條件最終是布爾類型的值

      if 條件成立:
           代碼段1
       else:
           代碼段2
      #實例1
       print("開始")
       if True:
         print("123")
       else:
         print("456")
       print("結束")
       ​
       # 輸出結果
       開始
       123
       結束
       ​
       #實例2
       #-----------------------------
       num = 19
       if num > 10:
           print("num變量對應值大於10")
       else:
           print("num變量對應值不大於10")
           
       #實例3    
       #-----------------------------
       number = input("請輸入數字:")
       if int(number)%2 == 1:
           print("{}是奇數".format(number))
       else:
           print("{}是偶數".format(number))    
           
       #實例4    
       #-----------------------------
       name = input("請輸入用戶名:")
       passwd = input("請輸入密碼:")
       if name == "teacher" and passwd == "123":
           print("登錄成功!")
       else:
           print("登錄失敗!")
           
       #實例5  
       #-----------------------------   
       num = input("請輸入數字:")
       if int(num) > 10:
           print("猜錯了!")
       else:
           print("猜對了!")

       

  2. 掌握程序的單分支結構,理解二分支、多分支結構語句;

    • 單分支結構

      name = input("請輸入用戶名:")
       passwd = input("請輸入密碼:")
       print("你輸入的用戶名是:{}".format(name))
       print("你輸入的密碼是:{}".format(passwd))
       ​
       #輸出結果:
       請輸入用戶名:1
       請輸入密碼:2
       你輸入的用戶名是:1
       你輸入的密碼是:2

    • 二分支結構

      name = input("請輸入用戶名:")
       passwd = input("請輸入密碼:")
       if name == "teacher" and passwd == "123":
           print("登錄成功!")
       else:
           print("登錄失敗!")

    • 多分支結構語句

      if 條件A:
         A成立,執行此縮進中的所有代碼
         ...
       elif 條件B:
         B成立,執行此縮進中的所有代碼
         ...
       elif 條件C:
         C成立,執行此縮進中的所有代碼
         ...
       else:
         上述ABC都不成立。

       

      num = input("請輸入數字")
       data = int(num)
       if data>6:
         print("太大了")
       elif data == 6:
         print("剛剛好")
       else:
         print("太小了")

       

  3. 理解循環結構語句的功能和寫法,能夠完成簡單循環結構的 程序;理解for循環、while循環、break和continue循環控制 結構語句;

    • while循環

      #死循環
       while True:
           print(1)
       print(2)
       ​
       #輸出結果
       '''
       1
       1
       1
       1
       1
       1
       1
       1
       ....
       '''
      while 1 > 2:
           print(1)
       print(2)
       #輸出結果
      print("開始")
      num = 1
      while num < 3:
      	print("滾滾黃河,滔滔長江。")
      	num = 5
      print("結束")
      
      # 輸出:
      '''
      開始
      滾滾黃河,滔滔長江。
      結束
      '''
      print("游戲開始!!!!")
      
      flag = True
      while flag:
          num = input("請輸入數字")
          data = int(num)
          if data > 6:
              print("太大了")
          elif data == 6:
              print("剛剛好")
              flag = False
          else:
              print("太小了")
      print("游戲結束!!!!")
    • break

      print("開始")
      while True:
      	print("1")
        break
      	print("2")
      print("結束")
      
      #輸出結果:
      '''
      開始
      1
      結束
      
      '''

       

      游戲猜數字:

      1.提示用戶輸入數字,循環比較輸入的數字與6的大小,如果大於6,輸出“太大了”;小於6輸出“太小了”;直到等於6,輸出“剛剛好”,並退出循環。

      print("游戲開始!!!!")
      
      num = 0
      flag = True
      while True:
          num = input("請輸入數字")
          data = int(num)
          if data > 6:
              print("太大了")
          elif data == 6:
              print("剛剛好")
              flag = False
              break
          else:
              print("太小了")
      print("游戲結束!!!!")

      2.提示用戶輸入數字,循環比較輸入的數字與6的大小,如果大於6,輸出“太大了”;小於6輸出“太小了”;等於6,輸出“剛剛好”,並退出循環。限制用戶輸入次數不能大於5次

      print("游戲開始!!!!")
      flag = True
      for i in range(5):
          num = input("請輸入數字")
          i += 1
          data = int(num)
          if data > 6:
              print("太大了")
          elif data == 6:
              print("剛剛好")
              flag = False
          else:
              print("太小了")
      
      print("游戲結束!!!!")

      上述實例可以得出:一般while循環用於不知道循環的次數,而for循環一般用於已知循環次數

    • continue

      print("開始")
       i = 1
       while True:
           if i == 7:
               i = i + 1
               continue
           print(i)
           i = i + 1
           if i == 10:
               break
       print("結束")
       ​
       #輸出結果:
       '''
       開始
       1
       2
       3
       4
       5
       6
       8
       9
       結束
       ​
       '''
    • 總結:對於break和continue都是放在循環語句中用於控制循環過程的,一旦遇到break就停止所有循環,一旦遇到continue就停止本次循環,開始下次循環。

  4. 理解range類型的概念,掌握它的基礎用法及操作。

    • range返回的是一個整數序列的對象

      print(list(range(10)))
       print("*"*20)
       print(list(range(1, 10)))
       print("*"*20)
       print(list(range(0, -10, -1)))
       ​
       #輸出結果:
       [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
       ********************
       [1, 2, 3, 4, 5, 6, 7, 8, 9]
       ********************
       [0, -1, -2, -3, -4, -5, -6, -7, -8, -9]

       

      for i in range(5):
           print(i)
           
       #輸出結果:
       '''
       0
       1
       2
       3
       4
       ​
       '''
       ​
       ​
       ****************************************
       for i in range(2, 5):
           print(i)
       ​
           #輸出結果:
       '''
       2
       3
       4
       ​
       '''
       ​
       ****************************************
       for i in range(10, 1, -1):
           print(i)
           
           #輸出結果:
       '''
       10
       8
       6
       4
       2
       ​
       '''   
       ​
       ****************************************
       for i in range(10, 2, -2):
           print(i)
       #輸出結果是?
       ​
       ****************************************
       for i in range(-3, -10, -2):
           print(i)
           
           #輸出結果:
       '''
       -3
       -5
       -7
       -9
       ​
       '''

range取前不取后

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM