Python 如何确定此ASCII表的间距?

Python 如何确定此ASCII表的间距?,python,python-3.x,Python,Python 3.x,我正在尝试使用Python 3编写一个程序,其中所需的输出如下表所示: chr:!" # $ % & ' ( ) * + , - . / asc:32 33 34 35 36 37 38 39 40 41 42 44 46 47 chr:01123456789:;? asc:48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 chr:@A B C D E F G H I J K L M N O asc

我正在尝试使用Python 3编写一个程序,其中所需的输出如下表所示:

chr:!"   #   $   %   &   '   (   )   *   +   ,   -   .   /
asc:32 33 34 35 36 37 38 39 40 41 42 44 46 47
chr:01123456789:;<=>?
asc:48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
chr:@A B C D E F G H I J K L M N O
asc:6465666769707172737476777879
chr:P Q R S T U V W X Y Z[\]^_
asc:80818283858687888990929495
chr:`a b c d e f g h i j k l m n o
asc:96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
chr:pqrstuvwxyz{124;}
asc:112 113 114 116 117 118 119 120 121 122 124 125 126 127
但是,我很难获得正确的间距。 以下是我使用的代码:

x         = 32
y         = 48
timesLeft = 6
while timesLeft > 0:
    for i in range(x, y):
        if i >= 32 and i % 16 == 0:
            if i > 32:
                print('')
        print('chr:', end='')
    print('  ',chr(i), end='')

    for j in range(x, y):
        if j >= 32 and j % 16 == 0:
            print('')
            print('asc:', end='')
        print(' ',j, end='')
    timesLeft = timesLeft - 1
    x = x + 16
    y = y + 16
这就是它的回报:

chr:!“#$%&'()*+,-/
asc:32 33 34 35 36 37 38 39 40 41 42 44 46 47
chr:01123456789:;<=>?
asc:48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
chr:@A B C D E F G H I J K L M N O
asc:6465666769707172737476777879
chr:P Q R S T U V W X Y Z[\]^_
asc:80818283858687888990929495
chr:`a b c d e f g h i j k l m n o
asc:96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
chr:pqrstuvwxyz{124;}
asc:112 113 114 116 117 118 119 120 121 122 124 125 126 127
是否需要调整我的代码(即不完全重写代码),使其输出看起来像第一个表?如果我真的需要大幅修改代码,任何建议都将不胜感激


作为本页最后一个练习的一部分,我正在编写此代码:

您的原始程序根本不适合我(?)

我对程序进行了如下修改:

x = 32
y = 48

for i in range(0,6):

    # Characters
    print('chr:', end='')
    for i in range(x, y):
        print('  ', chr(i), end='')
    print('')  # newline

    # Numbers
    print('asc: ', end='')
    for j in range(x, y):
        print('{:^4}'.format(j), end='')
    print('')  # newline

    # Advance to next row
    x = x + 16
    y = y + 16
这将提供以下输出:

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 
chr:   @   A   B   C   D   E   F   G   H   I   J   K   L   M   N   O
asc:  64  65  66  67  68  69  70  71  72  73  74  75  76  77  78  79 
chr:   P   Q   R   S   T   U   V   W   X   Y   Z   [   \   ]   ^   _
asc:  80  81  82  83  84  85  86  87  88  89  90  91  92  93  94  95 
chr:   `   a   b   c   d   e   f   g   h   i   j   k   l   m   n   o
asc:  96  97  98  99 100 101 102 103 104 105 106 107 108 109 110 111 
chr:   p   q   r   s   t   u   v   w   x   y   z   {   |   }   ~   
asc: 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 
输出

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 
chr:  @   A   B   C   D   E   F   G   H   I   J   K   L   M   N   O 
asc: 64  65  66  67  68  69  70  71  72  73  74  75  76  77  78  79 
chr:  P   Q   R   S   T   U   V   W   X   Y   Z   [   \   ]   ^   _ 
asc: 80  81  82  83  84  85  86  87  88  89  90  91  92  93  94  95 
chr:  `   a   b   c   d   e   f   g   h   i   j   k   l   m   n   o 
asc: 96  97  98  99  100 101 102 103 104 105 106 107 108 109 110 111 
chr:  p   q   r   s   t   u   v   w   x   y   z   {   |   }   ~    
asc: 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 
chr:!"   #   $   %   &   '   (   )   *   +   ,   -   .   / 
asc:32 33 34 35 36 37 38 39 40 41 42 44 46 47
chr:01123456789:;<=>?
asc:48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
chr:@A B C D E F G H I J K L M N O
asc:6465666769707172737476777879
chr:P Q R S T U V W X Y Z[\]^
asc:80818283858687888990929495
chr:`a b c d e f g h i j k l m n o
asc:96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
chr:pqrstuvwxyz{124;}
asc:112 113 114 116 117 118 119 120 121 122 124 125 126 127

但是……由于ASCII表不太可能更改,将其作为字符串打印并使用它不是更容易吗?

p、q、r等必须位于中间,请检查您的code@Hackaholic问题就是这样显示的,但是由于代码被破坏了,我假设这个例子也是错误的。我会让它上升到OP。
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 
chr:  @   A   B   C   D   E   F   G   H   I   J   K   L   M   N   O 
asc: 64  65  66  67  68  69  70  71  72  73  74  75  76  77  78  79 
chr:  P   Q   R   S   T   U   V   W   X   Y   Z   [   \   ]   ^   _ 
asc: 80  81  82  83  84  85  86  87  88  89  90  91  92  93  94  95 
chr:  `   a   b   c   d   e   f   g   h   i   j   k   l   m   n   o 
asc: 96  97  98  99  100 101 102 103 104 105 106 107 108 109 110 111 
chr:  p   q   r   s   t   u   v   w   x   y   z   {   |   }   ~    
asc: 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127