zoukankan      html  css  js  c++  java
  • 关于过滤字符中不同元素小结

    还是先贴题目和代码

      题目很简单,过滤一串字符串,把中文、英文、符号、数字区分开并分别打印

    代码如下

    class Filter_test():
        def filter_test(Str):
            #过滤出中文
            del_china = string.ascii_letters + string.digits + string.punctuation #.ascii_letters为所有字母大小写 digits为数字 punctuation为标点
            Str_china = Str.maketrans(del_china,(" "*len(del_china))) #创建转换表 替换表和对应表要等长 所以*len(del_str)
            Str_china = Str.translate(Str_china)#替换
            China_print = Str_china.split()
            # 过滤出数字
            del_num = Str_china + string.ascii_letters + string.punctuation
            Str_num = Str.maketrans(del_num,(" "*len(del_num)))
            Str_num = Str.translate(Str_num)
            Str_num = Str_num.strip()
            Num_print = Str_num.split()
            #过滤出英文
            del_str = Str_china + string.digits + string.punctuation
            Str_str = Str.maketrans(del_str,(" "*len(del_str)))
            Str_str = Str.translate(Str_str)
            Str_str = Str_str.strip()
            Str_print = Str_str.split()
            # 过滤出符号
            del_sym = Str_china + string.digits + string.ascii_letters
            Str_sym = Str.maketrans(del_sym, (" " * len(del_sym)))
            Str_sym = Str.translate(Str_sym)
            Str_sym = Str_sym.strip()
            Sym_print = Str_sym.split()
            print("过滤出
     中文为:{}
     英文为:{}
     数字为{}
     符号为{}".format(China_print,Str_print,Num_print,Sym_print))
    if __name__ == '__main__':
        Str = input("请输入你要过滤的字符串,请勿用中文标点:")
        Filter_test.filter_test(Str)

    很简单一个练习,主要难度在于maketrans()函数和translate()函数是否知晓,思路是先把字符串中不需要的字符用“ ”空格全部替换,然后用spilt()函数分割开并打印,我这里是导入string模块,利用模块里的常量来做对应表

    顺带把string常量也在这里贴一下

    string.digits:数字0~9

    string.letters:所有字母(大小写)

    string.punctuation:所有标点

    string.lowercase:所有小写字母

    string.uppercase:所有大写字母

    string.printable:可打印字符的字符串

    这里贴的代码还可以优化一下,判断一下标点符号的大小写并做相应处理,待后续优化吧

  • 相关阅读:
    Future
    Vim 打开多个文件
    turboc报错:"unable to open file:c0s.obj "
    JNI(1)
    数据绑定控件ListView
    数据绑定控件ListView事件
    数据库取图片拼接ImageUrl
    数据绑定控件Reperter
    数据绑定控件ListView事件ItemCreated的Bug
    数据库系统为什么使用三级模式结构
  • 原文地址:https://www.cnblogs.com/keima/p/10444386.html
Copyright © 2011-2022 走看看