Edited at

【保存版】Pythonの文字変換(半角,全角,小文字,大文字)

職場でデータベースから購買データを取ってくる時に、

「何パターンもわざわざ商品名を考えるのが面倒過ぎる!」

という事から、データベースから購買データを取ってくるアプリを作成している過程でメモった、文字変換についての一覧をまとめました!


事前準備

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