實機練習題

  1. 前置作業
    1. 在家目錄下建立 zzz 目錄。
    2. 切換工作目錄到 zzz。
  2. 在 zzz 目錄下寫一 python 程式 re-match1.py:
    1. 使用 sys 模組,讓執行 re-match1.py 時,指定搜尋字串,假設 str1。
    2. 使用 re 模組,re.match 搜尋指定的字串。
    3. 不分大小寫,如果符合「h開始,d結尾」,則印出找到的字串。
    4. 否則印出「找不到字串 str1」。
  3. 在 zzz 目錄下寫一 python 程式 re-search1.py:
    1. 使用 sys 模組,讓執行 re-search1.py 時,指定搜尋字串。
    2. 使用 re 模組,re.search 搜尋指定的字串。
    3. 不分大小寫,如果符合「行首為h,行尾為d」,則印出找到的字串。
    4. 否則印出「找不到字串 str1」。
  4. 在 zzz 目錄下寫一 python 程式 re-sub1.py:
    1. 使用 sys 模組,讓執行 re-sub1.py 時,指定一串由 ()[]{} 所組成之字串,假設是 str2。
    2. 讀入 str2 字串,判斷字串是否合法?
    3. 一個 ()[]{} 必須對稱存在,且對應的括號間不能插入單獨的括號。
      提示:while 迴圈中,三個獨立的對稱括號,取代成空字串,放回原字串變數,直到字串變數不變。
      tmp=”
      while ans!=tmp:
          tmp=ans
          ans=re.sub('\(\)',”,ans)
          .....
      
    4. 範例輸出一:
      ({[()]()})
      Ans=CORRECT
      
    5. 範例輸出二:
      (){[()]()
      Ans=ERROR
      
  5. 在 zzz 目錄下寫一 python 程式 re-sub2.py:
    1. 使用 sys 模組,讓執行 re-sub2.py 時,指定搜尋的字串。
    2. 對於一個字串若起始字元為 A,最後字元為 L,且其間不含任何 A 或 L 字元則稱 AL 字串,AL 不分大小寫。
    3. 例:A_PENCILA_XXBBHCL_ 表示空白字元)。
    4. 消去所有可能的 AL 字串,使得消去後之輸出不包含 AL 字串。
    5. 範例輸入:
      This is a ball, not a bell.
      
    6. 範例輸出:
      This is a ball, not a bell.
      This is , not l.
      
  6. 在 zzz 目錄下寫一 python 程式 re-sub3.py:
    1. 使用 sys 模組,讓執行 re-sub3.py 時,指定搜尋的字串。
    2. 讀入一長串字串資料,字串資料是由字元 (‘a’~’z’,’A’~’Z’)、數字 (‘0’~’9’) 以及空白字元所構成。
    3. 將字串中由字元或者空白隔開的數字部分進行加總,並且將原字串以及結果輸出。
      提示:sub 取代做以下動作:
      1. 所有非數字字元取代成空白
      2. 所有連續空白取代成"+"號
      3. 刪除字串前後"+"號後
      4. 刪除數字前的 0,例如:0234,改成 234,獨立的 0 不必刪。
    4. 例如輸入:
      Cyut54is a356good 72school Ne0125ver 56give22 66up
      
    5. 則取代後的字串為:
      54+356+72+125+56+22+66
      
    6. 以 eval 函式計算"字串運算式",輸出範例如下:
      Cyut54is a356good 72school Ne0125ver 56give22 66up
      54+356+72+125+56+22+66=751