Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

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

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

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

事前準備

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
shakechi
都内の広告代理店でデータサイエンスやシステム開発を行っています。購買データ分析や業務効率化を得意としています。元は独立系Sierの損害保険系の部署で働いていました。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした