怎么把python中不可打印的部分替换成星号

问题:在打印ascii码表时有一些不可打印的部分,希望各位大神教教我怎么替换掉,我用了replace结果替换不了,不太明白怎么把不可打印的部分处理成✳️。图如下标注:

img

img

通过搜索的资料,发现可以使用isprintable()来判断字符串中的字符是否可以被打印。

代码如下:

参考链接:


https://www.bbsmax.com/A/obzbLPay5E/

https://blog.csdn.net/zengcong2013/article/details/18702945

https://blog.csdn.net/LaoYuanPython/article/details/94211925


for i in range (0,256):

    tplt = "{0:^10}:{1:^10}:{2:^10} "
    
    #  https://cloud.tencent.com/developer/article/2173470
    #  https://www.bbsmax.com/A/obzbLPay5E/
    # https://blog.csdn.net/zengcong2013/article/details/18702945
    # https://blog.csdn.net/LaoYuanPython/article/details/94211925
    # 使用isprintable方法判断字符串中的字符是否可以打印,如果可以则直接,否则输出为星号
    if  str(chr(i)).isprintable()== True:
        print(tplt.format(i,hex(i),chr(i),sep=":",end=" "))
    else :
        print(tplt.format(i,hex(i),'*',sep=":",end=" "))



img

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7579657
  • 你也可以参考下这篇文章:Python 十六进制数与ascii码的转换
  • 除此之外, 这篇博客: 【强推】五个相见恨晚的Python小技巧总结(一)中的 6. ASCII码和数字互相转换 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    在Python中,我们经常需要进行数字和ASCII字符进行互换,常见字符的ASCII如下所示:

    48-57          数字0-9
    97-122         小写字母a-z
    

    用Python实现数字转ASCII码的代码如下:

    print(chr(65))
    print(chr(115))
    print(chr(99))
    print(chr(105))
    print(chr(105))
    

    输出如下:

    A
    s
    c
    i
    i
    

    反之,我们可以使用ord函数,进行ascii码转成对应的数字,代码如下:

    
    num=ord('a')
    print(num)
    

    输出如下:

    97
    

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^