作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试编写一个简短的脚本(作为教程)来显示前 128 个 ASCII 字符中哪些是可打印、可识别的字符。
以下使用“is in string.printable”的脚本部分有效,但仍然会触发换行等操作。
是否可以添加一两行来捕获并用空格替换这些控制字符,以便表格看起来不错并显示可打印字符?
为菜鸟可读性而手写:
import string
lines = []
for i in range(8):
line = []
for j in range(16):
k = i + j *16
thing = chr(k)
if thing not in string.printable:
thing = ' '
line.append(thing)
lines.append(line)
for line in lines:
print "".join(line)
空闲:
复制/粘贴到 SE 中,包括四个空格:
0@P`p
!1AQaq
"2BRbr
#3CScs
$4DTdt
%5EUeu
&6FVfv
'7GWgw
(8HXhx
)9IYiy
*:JZjz
+;K[k{
,<L\l|
-=M]m} .>N^n~ /?O_o
最佳答案
根据OP的评论更新了代码以替换不可打印的字符。
from string import printable, whitespace
replace_ch = ' ' # The character to replace non-printable characters with
whitespace_ch = ' ' # The character to replace whitespace characters with
# For console output
out_width = 8
out_height = 16
chars = [chr(i) for i in range(128)]
# Replace whitespace characters
chars = [whitespace_ch if c in whitespace else c for c in chars]
# Replace non-printable characters
chars = [c if c in printable else replace_ch for c in chars]
# Form lines for printing
lines = [[chars[i + j * out_height] for j in range(out_width)] for i in range(out_height)]
for line in lines:
print(''.join(line))
输出:
0@P`p
!1AQaq
"2BRbr
#3CScs
$4DTdt
%5EUeu
&6FVfv
'7GWgw
(8HXhx
)9IYiy
*:JZjz
+;K[k{
,<L\l|
-=M]m}
.>N^n~
/?O_o
另一种方法是简单地避免使用 ASCII 的前 32 个字符,因为它们被定义为控制字符。检查字符 c
的 ord(c)
可能会更有效。
关于python - 中和不可见的 ASCII 字符以打印 ASCII 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47341255/
在这段代码中,我想知道在 else block 中执行的代码和在 if block 之后执行的代码有什么区别? #include using namespace std; int digits(in
我有这样的场景,比如我需要运行一个位于 12.34.567 的 API curl 请求,登录后我必须再登录一台主机 98.76.543。 登录到第二个主机后,我必须运行curl -XPOST -H"C
我是一名优秀的程序员,十分优秀!