Python 实例|全角、半角转换

全角标点替换为半角标点:

def full_to_half(s: str) -> str:
    """将全角字符替换为半角字符"""
    res = []
    for ch in s:
        if ord(ch) == 12288:  # 全角空格直接转换
            res.append(chr(32))
        elif 65281 <= ord(ch) <= 65374:  # 全角字符(除空格)根据关系转化
            res.append(chr(ord(ch) - 65248))
        else:
            res.append(ch)
    return "".join(res)

半角标点替换为全角标点:

def half_to_full(s: str) -> str:
    """将半角字符替换为全角字符"""
    res = []
    for ch in s:
        if ord(ch) == 32:  # 全角空格直接转换
            res.append(chr(12288))
        elif 32 <= ord(ch) <= 126:  # 全角字符(除空格)根据关系转化
            res.append(chr(ord(ch) + 65248))
        else:
            res.append(ch)
    return "".join(res)

替换的符号清单:

ASCII 全角字符 半角字符
32  (全角空格) (半角空格)
33 !
34 "
35 #
36 $
37 %
38 &
39 '
40 (
41 )
42 *
43 +
44 ,
45 -
46 .
47 /
48 0
49 1
50 2
51 3
52 4
53 5
54 6
55 7
56 8
57 9
58 :
59 ;
60 <
61 =
62 >
63 ?
64 @
65 A
66 B
67 C
68 D
69 E
70 F
71 G
72 H
73 I
74 J
75 K
76 L
77 M
78 N
79 O
80 P
81 Q
82 R
83 S
84 T
85 U
86 V
87 W
88 X
89 Y
90 Z
91 [
92 \
93 ]
94 ^
95 _ _
96 `
97 a
98 b
99 c
100 d
101 e
102 f
103 g
104 h
105 i
106 j
107 k
108 l
109 m
110 n
111 o
112 p
113 q
114 r
115 s
116 t
117 u
118 v
119 w
120 x
121 y
122 z
123 {
124 `
125 }
126 ~

猜你喜欢

转载自blog.csdn.net/Changxing_J/article/details/133319957