職場でデータベースから購買データを取ってくる時に、
「何パターンもわざわざ商品名を考えるのが面倒過ぎる!」
という事から、データベースから購買データを取ってくるアプリを作成している過程でメモった、文字変換についての一覧をまとめました!
事前準備
Pythonの標準搭載のライブラリでも変換は幾つかできるのですが、
- 「ひらがな」から「カタカナ」
- 半角・全角の相互変換
の部分については変換できないため、今回は文字変換にjaconvというパッケージを使いました。
先に下記のコードでインストールしておきましょう。
pip install jaconv
詳しい仕様方法は下記より参照。
https://pypi.org/project/jaconv/
変換コード
入力宣言
hira = "もんすたーえなじー2"
romaji = "mondter energy2"
半角と全角が混ざるように、
- ひらがなには半角数字
- ローマ字には全角数字
を付けて検証しています。
【補足】 下記の方法でオプション追加
- kana=True or False
- digit=True or False
- ascii=True or False
kana=カタカナを変換対象に含めるか
digit=数字を変換対象に含めるか
ascii=英字・記号を変換対象に含めるか
ひらがな
ひらがな
#「ひらがな」以外半角
print(jaconv.z2h(hira,digit=True, ascii=True)) #=> もんすたーえなじー2
#「ひらがな」以外全角
print(jaconv.h2z(hira,digit=True, ascii=True)) #=> もんすたーえなじー2
カタカナ
カタカナ
#【変数格納】「ひらがな」 ⇒ 「カタカナ」
kata = jaconv.hira2hkata(hira)
#「ひらがな」だけを「カタカナ」に
print(jaconv.hira2kata(hira)) #=> モンスターエナジー2
#「カタカナ」以外の半角
print(jaconv.z2h(kata,digit=True, ascii=True)) #=> モンスターエナジー2
#「カタカナ」以外の全角
print(jaconv.h2z(kata,digit=True, ascii=True)) #=> モンスターエナジー2
ローマ字
【ローマ字のみ】小文字・大文字操作
小文字・大文字操作
#全て小文字
print(romaji.lower()) #=> monster energy2
#全て大文字
print(romaji.upper()) #=> MONSTER ENERGY2
#1文字目大文字
print(romaji.capitalize()) #=> Monster energy2
#単語頭大文字
print(romaji.title()) #=> Monster Energy2
【半角】小文字・大文字操作
【半角】小文字・大文字操作
#全て小文字
print(jaconv.z2h(romaji,digit=True,ascii=True)) #=> monster energy2
#全て大文字
print(jaconv.z2h(romaji.upper(),digit=True,ascii=True)) #=> MONSTER ENERGY2
#1文字目大文字
print(jaconv.z2h(romaji.capitalize(),digit=True,ascii=True)) #=> Monster energy2
#単語頭大文字
print(jaconv.z2h(romaji.title(),digit=True,ascii=True)) #=> Monster Energy2
【全角】小文字・大文字操作
【全角】小文字・大文字操作
#全て小文字
print(jaconv.h2z(romaji,digit=True,ascii=True)) #=> monster energy2
#全て大文字
print(jaconv.h2z(romaji.upper(),digit=True,ascii=True)) #=> MONSTER ENERGY2
#1文字目大文字
print(jaconv.h2z(romaji.capitalize(),digit=True,ascii=True)) #=> Monster energy2
#単語頭大文字
print(jaconv.h2z(romaji.title(),digit=True,ascii=True)) #=> Monster Energy2
まとめ
解説を入れて見づらくなってしまったため、まとめて書きました。
このままコピペしても使えるので、色々な文字列で変換を試してみて下さい。
文字変換まとめ
import jaconv
hira = "もんすたーえなじー2"
romaji = "mondter energy2"
kata = jaconv.hira2hkata(hira)
print(jaconv.z2h(hira,digit=True, ascii=True)) #=> もんすたーえなじー2
print(jaconv.h2z(hira,digit=True, ascii=True)) #=> もんすたーえなじー2
print(jaconv.hira2kata(hira)) #=> モンスターエナジー2
print(jaconv.z2h(kata,digit=True, ascii=True)) #=> モンスターエナジー2
print(jaconv.h2z(kata,digit=True, ascii=True)) #=> モンスターエナジー2
print(romaji.lower()) #=> monster energy2
print(romaji.upper()) #=> MONSTER ENERGY2
print(romaji.capitalize()) #=> Monster energy2
print(romaji.title()) #=> Monster Energy2
print(jaconv.z2h(romaji,digit=True,ascii=True)) #=> monster energy2
print(jaconv.z2h(romaji.upper(),digit=True,ascii=True)) #=> MONSTER ENERGY2
print(jaconv.z2h(romaji.capitalize(),digit=True,ascii=True)) #=> Monster energy2
print(jaconv.z2h(romaji.title(),digit=True,ascii=True)) #=> Monster Energy2
print(jaconv.h2z(romaji,digit=True,ascii=True)) #=> monster energy2
print(jaconv.h2z(romaji.upper(),digit=True,ascii=True)) #=> MONSTER ENERGY2
print(jaconv.h2z(romaji.capitalize(),digit=True,ascii=True)) #=> Monster energy2
print(jaconv.h2z(romaji.title(),digit=True,ascii=True)) #=> Monster Energy2