python之中文符号转英文符号

方法一:

  maketrans方法, 它使用的是一种映射关系来将(中文字符)转换为(英文字符),前提需要维护映射关系数据,也就是你维护了(中文符号),你也得维护其对应的(英文符号),且两边的数量得保持一致, 否则会报错

  优点:可以一次性转换多个符号或字符,拓展性强 。缺点是代码长了点

 

(中文符号)转(英文符号)

# 定义中文符号
chinese_character = r',。!?;:()《》【】“”\‘\’、中文'
# 定义对应的英文符号
english_character = r',.!?;:()<>[]""\'\' 英文'

# 创建转换表
table = str.maketrans(chinese_character, english_character)

# 要转换的中文句子
str = '(中文符号)转(英文符号)中文'

# 进行转换
English_Symbols = str.translate(table)

# 输出结果
print(English_Symbols)

执行结果>>>
(英文符号)转(英文符号)英文

 

(英文符号)转(中文符号):直接将 str.maketrans 里面的参数对调一下即可

# 创建转换表
table = str.maketrans(english_character,chinese_character)

 

方法二:

  replace方法:如果你只想转换一个字符, 这个方法会比较简单,这个方法的作用是字符串替换功能, 将关键字替换成你想要的字符

  优点:代码简洁,一目了然。缺点是功能小了点

# 比较简单,注释我就不写了
a = '123,456'
print(a.replace('', ':'))

执行结果>>>
123:456

 

或者你可以使用我编写的 replace 升级版,可以拿来直接使用,它的强大之处是可以同时处理多个(字符串主体),并且一个(字符串主体)可以同时处理多个关键字替换,拿来可以直接使用。

格式为:key_replace(原始字符,{'关键字':'新数据'})

批量格式为:key_replace(原始字符1,原始字符2,{'关键字1':'新数据1','关键字2':'新数据2'},{'关键字':'新数据'})

import ast


# 关键字替换字符串:
def key_replace(*args):
        """
        传入格式说明:key_replace(原始字符串,{'关键字':'新数据'})
        可变传参说明:key_replace(原始字符串1,原始字符串2,{'关键字1':'新数据1','关键字2':'新数据2'},{'关键字':'新数据'})
        PS: 一个(原始字符串)对应一个字典,一个字典可以传入多个关键字替换
        :return:
        """
        str_main = []  # 用于存储传入的字符串主体
        rep_info = []  # 用于存储传入替换关键字信息
        for key_info in args:  # 遍历传入的参数
            if isinstance(key_info, dict):  # 如果是字典格式,则代表是(替换关键字信息)
                rep_info.append(key_info)
            else:  # 如果是字符串或其它,则将其添加到字符串列表中
                str_main.append(key_info)

        case_list = []  # 用于存储替换后的结果
        # 遍历传入的字符串和字典,分别进行替换操作
        for case_data, key_dict in zip(str_main, rep_info):
            for key_, value in key_dict.items():  # 遍历字典中的所有键值对
                case_data = str(case_data).replace(key_, str(value))  # 替换指定的关键词
            try:
                ast.literal_eval(case_data)  # 尝试将替换后的字符串解析为对应数据类型
            except SyntaxError:  # 如果解析失败,则将字符串加入到case_list中
                case_list.append(case_data)
            else:  # 如果解析成功,则将解析后的结果加入到case_list中
                case_list.append(ast.literal_eval(case_data))

        if len(case_list) == 1:  # 如果case_list中元素个数为1,则返回该元素(而不是一个列表)
            return case_list[0]
        return case_list  # 否则,整体返回case_list

 

希望能帮到你,类似这些小功能我的建议是自己写一个出来。

 

posted @ 2023-04-06 14:19  博无止境  阅读(1105)  评论(0编辑  收藏  举报