在python 3 print()命令中直接在完整的表

时间:2016-06-30 01:15:07

标签: python python-3.x

我是python的新手,并希望将其用作退休项目。但是,我尝试以下面的格式打印表格时遇到了很多麻烦。我只会在我想要实现的内容中显示如下的ascii表

chr:      !   "   #   $   %   &   '   (   )   *   +   ,   -   .   / 
asc: 32  33  34  35  36  37  38  39  40  41  42  43  44  45  46  47 
chr:  0   1   2   3   4   5   6   7   8   9   :   ;   <   =   >   ? 
asc: 48  49  50  51  52  53  54  55  56  57  58  59  60  61  62  63

我在许多版本中尝试过'\n'而我无法按上述方式打印输出。这是我尝试让事情至少起作用的简短代码;

for asc in range(32,64):
        print(chr(asc),end = ' ')
        print(ord(chr(asc)),end = ' ')

'\n'放在任何地方,只会进一步混淆问题;

for asc in range(32,64):
        print(chr(asc),'\n',end = ' ')
        print(ord(chr(asc)),end = ' ')

再次使输出垂直,所以我卡住了。我在谷歌和这个网站上看起来很努力,我宁愿远离类型命令,因为我还在编程的最初阶段。在这一点上很长的路要走。欢迎任何帮助。

2 个答案:

答案 0 :(得分:0)

在任何想象中都不是一个pythonic或优雅的解决方案,而是建立在已有的基础上:

print('chr:',end='')
for asc in range(32,48):
    print('{:>4}'.format(chr(asc)),end='')
print()
print('asc:',end='')
for asc in range(32,48):
    print('{:>4}'.format(ord(chr(asc))),end='')
print()
print('chr:',end='')
for asc in range(48,64):
    print('{:>4}'.format(chr(asc)),end='')
print()
print('asc:',end='')
for asc in range(48,64):
    print('{:>4}'.format(ord(chr(asc))),end='')
print()

答案 1 :(得分:0)

首先,您在上面的代码段中执行ord(chr(asc))的原因。它只是意味着asc变量。现在,来到您的解决方案,您可以先使用chrordstr()转换为字符串,然后您可以应用ljust()rjust()字符串方法。他们究竟做了什么,你可以从他们的文档中知道。以下是代码段:

for asc in range(35, 42):
    print(str(chr(asc)).rjust(5), end = '')
print()

for asc in range(35, 42):
    print(str(asc).rjust(5), end='')
print()