# 半角カナと全角カナを交換
def conversion_kana(kana):
zen = "アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンァィゥェォッャュョ"
han = "アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンァィゥェォッャュョ"
zen_da = "ガギグゲゴザジズゼゾダヂヅデドバビブベボパピプペポヴ"
han_da = "ガギグゲゴザジズゼゾダヂヅデドバビブベボパピプペポヴ"
kana_dic = {
zen: han,
han: zen,
zen_da: han_da,
han_da: zen_da
}
res = ""
# 入力文字を一文字づつ走査する
for i, k in enumerate(kana):
if k[0] in ['゙', '゚']:
continue
# 文字が半角の濁点なら次の一文字を追加する
han_d_flg = False
if not len(kana) == i+1:
if kana[i+1] in ['゙', '゚']:
k += kana[i+1]
han_d_flg = True
# 文字が所属するキーを探す
zen_d_flg = False
ok_flg = False
for key in kana_dic.keys():
if key[0] == "ガ":
zen_d_flg = True
# キーを一文字づつ走査する
if k in key:
# 半角濁点はインデックスを半分にする、全角濁点はインデックスを倍にする、それ以外はそのまま
if han_d_flg:
int_key = int(key.find(k)/2)
if not len(kana_dic[key]) == int_key:
res += kana_dic[key][int_key]
elif zen_d_flg:
res += kana_dic[key][key.find(k)*2] + kana_dic[key][key.find(k)*2+1]
else:
res += kana_dic[key][key.find(k)]
ok_flg = True
break
# 文字が見つからない場合はそのまま代入する
if not ok_flg:
res += k
return res
More than 1 year has passed since last update.
Register as a new user and use Qiita more conveniently
- You get articles that match your needs
- You can efficiently read back useful information
- You can use dark theme