python:替换中文数字

替换中文数字

从键盘输入一串含有中文数字和阿拉伯数字的字符串。将字符串中的中文数字替换为阿拉伯数字,其他字符保持不变。
输入输出示例:
dokey886
其实我们能选择的方法有很多例如python的库,python的正则表达,还有就是纯写出来的
方法一:利用python库来完成

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

这里可能遇到的问题就是显示报错 有关系吗没有
打开终端输入pip install cn2an
如果还不可以的话可以打开cmd或者文件设置中的pip只能手动添加啦~
终端啊啊啊你要非得不行cmd和右边的+pip也不是不行
效果相同如下
1122yyds
没啥好说的就是库

方法二:利用正则函数实现中文数字和阿拉伯数字替换,首先定义了一个包含中文数字和阿拉伯数字对应关系的字典,然后使用正则表达式匹配中文数字,将匹配到的中文数字替换为对应的阿拉伯数字,并将结果转换为字符串输出。
正则函数:它是一种字符串匹配的模式,python中必备的工具主要是用来查找和匹配字符串的。
re.match语法:re.match(pattern, string[, flags])
从首字母开始开始匹配,string如果包含pattern子串,则匹配成功,返回Match对象,失败则返回None(个人觉得类似于查找,match查找类型进行,search)。
robot quenstion
Python中的re.compile函数用于编译正则表达式,返回一个正则表达式对象。编译后的正则表达式可以重复使用,提高程序效率。语法格式如下:re.compile(pattern, flags=0),flags可以是参数。
re.match查找的类型表达
更详细的我在这里Python正则表达式大全链接:http://t.csdn.cn/PIkCo
为了方便理解
remath的用法
张三警告
哈哈哈哈哈哈哈哈哈
方便理解:
在这里插入图片描述

在这里插入图片描述
详细http://t.csdn.cn/SamAl
代码如下:

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)

示例:
星巴克好喝眼睛biulingbiuling
第三种方法:我认为好理解的
首先是输入然后可以发现定义字典里面的value值=字典名的关键值
在这里插入图片描述
利用循环循环输入的长度的次数如果在字典中查到了这个关键值我们将它替换成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)

一点点奶茶小芥呜呜好想你
第四种方法:用到库

t=input()
t1="零一二三四五六七八九"
t2="0123456789"
tt=t.maketrans(t1,t2)
print(t.translate(tt))
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值