---
# System prepended metadata

title: Python num2words-將數字轉換為多種語言的單詞
tags: [Python]

---

# Python num2words-將數字轉換為多種語言的單詞

###### tags: `Python`

## 參考資料

[num2words](https://pypi.org/project/num2words/)

## 項目描述

num2words 是一個可以將數字轉換為文字的函式庫。
例如：42->forty-two，它也支援多種語言（有關語言的完整列表，請參見下面的列表）。
同時也可以產生序數(first、second、third)。
不知道序數是啥，可參考：[英文序數寫法與唸法 Ordinal Numbers](http://www.wordsgo.com/numbers/ordinal-numbers/english-ordinal-numbers.html)

## 安裝 num2words

安裝 num2words 的最簡單方法是使用pip3：

```shell=
pip3 install num2words
```

## 使用 num2words

num2words 只有一個函數 num2words 可以使用。

範例程式碼如下：
```python=
>>> from num2words import num2words
>>> num2words(42)
forty-two
>>> num2words(42, to='ordinal')
forty-second
>>> num2words(1, to='ordinal_num')
1st
>>> num2words(42, lang='fr')
quarante-deux
>>> num2words(1998,to='year')
nineteen ninety-eight
```

除了數值參數外，還有兩個主要的可選參數。

to：選擇要轉換成什麼，支援的參數值有：

* cardinal (預設)
* ordinal (序數)
* ordinal_num (用阿拉伯數字表達序數)
* year (西元年分轉換)
* currency (貨幣值轉換)

lang：選擇要轉換的語言，支援的參數值有：

* en（英語，默認）
* ar（阿拉伯語）
* cz（捷克文）
* de（德文）
* dk（丹麥文）
* en_GB（英語-英國）
* en_IN（英語-印度）
* es（西班牙語）
* es_CO（西班牙語-哥倫比亞）
* es_VE（西班牙語-委內瑞拉）
* eu（歐洲）
* fi（芬蘭語）
* fr（法文）
* fr_CH（法國-瑞士）
* fr_BE（法國-比利時）
* fr_DZ（法語-阿爾及利亞）
* he（希伯來語）
* id（印尼文）
* it（意大利語）
* ja（日語）
* kn（卡納達語）
* ko（韓文）
* lt（立陶宛語）
* lv（拉脫維亞語）
* no（挪威文）
* pl（波蘭語）
* pt（葡萄牙語）
* pt_BR（葡萄牙語-巴西）
* sl（斯洛文尼亞）
* sr（塞爾維亞文）
* ro（羅馬尼亞語）
* ru（俄語）
* tr（土耳其文）
* th（泰國）
* vi（越南語）
* nl（荷蘭語）
* uk（烏克蘭）

