python全角数字_python 半角全角的相互转换

全角与半角在中文输入法里经常要接触到,后台在处理用户输入数据时需要对半角全角的相互转换。下面是python 实现的半角全角的相互转换功能。

be25eb81363b0673cc7cda6725eb383d.png

全角与半角

全角指一个字符占用两个标准字符位置的状态。

半角即一个字符占用一个标准字符的位置。

全角占两个字节,半角占一个字节。半角全角主要是针对标点符号来说的,全角标点占两个字节,半角占一个字节,而不管是半角还是全角,汉字都还是要占两个字节。

半角全角的转换

python code: 半角全角的转换

# -*- coding: utf-8 -*-

def strQ2B(ustring):

"""把字符串全角转半角"""

rstring = ""

for uchar in ustring:

inside_code=ord(uchar)

if inside_code==0x3000:

inside_code=0x0020

else:

inside_code-=0xfee0

if inside_code0x7e: #转完之后不是半角字符则返回原来的字符

rstring += uchar

rstring += unichr(inside_code)

return rstring

def strB2Q(ustring):

"""把字符串半角转全角"""

rstring = ""

for uchar in ustring:

inside_code=ord(uchar)

if inside_code0x7e: #不是半角字符则返回原来的字符

rstring += uchar

if inside_code==0x0020: #除了空格其他的全角半角的公式为:半角=全角-0xfee0

inside_code=0x3000

else:

inside_code+=0xfee0

rstring += unichr(inside_code)

return rstring

def b2q(ustr):

return ''.join(unichr(0x3000 if c == 0x0020 else c+0xfee0 if 0x0020 < c < 0x0080 else c) for c in map(ord, ustr))

def q2b(ustr):

return ''.join(unichr(0x0020 if c == 0x3000 else c-0xfee0 if 0xff00 < c < 0xff80 else c) for c in map(ord, ustr))

print strB2Q('aoe')

print b2q('aoe')

上面函数统一格式化用户输入很有帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值