替换中文数字

从键盘输入一串含有中文数字和阿拉伯数字的字符串。将字符串中的中文数字替换为阿拉伯数字,其他字符保持不变。

输入输出示例:

python汉字替换 python替换中文数字_正则表达式


其实我们能选择的方法有很多例如python的库,python的正则表达,还有就是纯写出来的

方法一:利用python库来完成

import cn2an
t=str(input())
print(cn2an.transform(t))

这里可能遇到的问题就是显示报错 有关系吗没有

打开终端输入pip install cn2an 如果还不可以的话可以打开cmd或者文件设置中的pip只能手动添加啦~

python汉字替换 python替换中文数字_正则表达式_02


效果相同如下

python汉字替换 python替换中文数字_pycharm_03


没啥好说的就是库方法二:利用正则函数实现中文数字和阿拉伯数字替换,首先定义了一个包含中文数字和阿拉伯数字对应关系的字典,然后使用正则表达式匹配中文数字,将匹配到的中文数字替换为对应的阿拉伯数字,并将结果转换为字符串输出。

正则函数:它是一种字符串匹配的模式,python中必备的工具主要是用来查找和匹配字符串的。

re.match语法:re.match(pattern, string[, flags])

从首字母开始开始匹配,string如果包含pattern子串,则匹配成功,返回Match对象,失败则返回None(个人觉得类似于查找,match查找类型进行,search)。

python汉字替换 python替换中文数字_pycharm_04


Python中的re.compile函数用于编译正则表达式,返回一个正则表达式对象。编译后的正则表达式可以重复使用,提高程序效率。语法格式如下:re.compile(pattern, flags=0),flags可以是参数。

python汉字替换 python替换中文数字_字符串_05


为了方便理解

python汉字替换 python替换中文数字_正则表达式_06


张三警告

python汉字替换 python替换中文数字_python_07


方便理解:

python汉字替换 python替换中文数字_字符串_08

python汉字替换 python替换中文数字_正则表达式_09


代码如下:

import re
s = input()
ch_dict = {'零': 0, '一': 1, '二': 2, '三': 3, '四': 4, '五': 5, '六': 6, '七': 7, '八': 8, '九': 9}
pattern = re.compile('[零一二三四五六七八九]')
result = ""
for char in s:
   if pattern.match(char):
       result += str(ch_dict[char])
   else:
       result += char
print(result)

示例:

python汉字替换 python替换中文数字_python_10


第三种方法:我认为好理解的

首先是输入然后可以发现定义字典里面的value值=字典名的关键值

python汉字替换 python替换中文数字_字符串_11


利用循环循环输入的长度的次数如果在字典中查到了这个关键值我们将它替换成value的值如果没有就继续将他不动的加上去 最后打印出来

t= input()
dict= {'零': 0, '一': 1, '二': 2, '三': 3, '四': 4, '五': 5, '六': 6, '七': 7, '八': 8, '九': 9}
jg= ""
for i in t:
   if i in dict:
       jg=jg+str(dict[i])
   else:
       jg=jg+i
print(jg)

python汉字替换 python替换中文数字_字符串_12


第四种方法:用到库

t=input()
t1="零一二三四五六七八九"
t2="0123456789"
tt=t.maketrans(t1,t2)
print(t.translate(tt))