我正在尝试使用Python 3编写程序,其中所需的输出是此表:
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
但是,我无法获得正确的间距。 以下是我使用的代码:
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 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
如果无论如何都要调整我的代码(即没有完全重写它),那么它的输出看起来像第一个表?如果我确实需要彻底改变代码,那么任何建议都会非常感激。
我正在处理此代码,作为本页最后一次练习的一部分:http://cscircles.cemc.uwaterloo.ca/8-remix/
答案 0 :(得分:0)
您的原始程序根本不适用于我(?)
我已经用这种方式修改了程序:
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
这就是你想要的吗?
要获得精确您显示的输出,可以这样做:
x = 32
y = 48
for m in range(0, 6):
print('chr:', end='')
for i in range(x, y):
print(' %s ' % chr(i), end='')
print('')
print('asc:', end='')
if (m == 5):
print(' ', end='')
for j in range(x, y):
if (m == 4 and j == 100):
print(' ', end='')
print('{:^4}'.format(j), end='')
print('')
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
但是......由于ASCII表不太可能改变,因此将它作为字符串打印并完成它会更容易吗?