輸入:金額的中文大寫(字符串)
輸出:阿拉伯數字(float或int型)
整數部分主要是利用正則表達式進行檢索,將對應項的數字與單位列表的對應項相乘並求和,小數部分也是一樣的手法,但是由於可能存在只有角的情況,正則表達式不好處理,而且角、分這裡涉及的情況並不多,所以我們分離處理
1. 初始化參數
2. 處理整數部分
I. 用正則表達式按照模板檢索(從兆位到個位,沒有對應項則為空)
II. 按照映射表執行映射後組合成數字列表
III. 將數字列表與數字單位列表的對應索引項進行相乘後求和
3. 處理小數部分
I. 長度為4:N角N分,獲取到角和分對應的數字,映射後與單位相乘求和
II. 長度為3:零N分,獲取到分對應的數字,執行映射後與單位相乘
III. 長度為2,N角,獲取到角對應的數字,執行映射後與單位相乘
4. 數據映射
和之前提到的映射方法一致,只是將數字與漢字對調,這裡有一個對字符串的處理,如果是零N的形式則將字符串替換為N,如果是空字符串,則按照零執行映射
5. 數據檢查
判斷數據合理性
閱讀更多 千鋒python學院 的文章