用于为ascii字符分配不同数字的脚本

时间:2016-02-22 16:28:32

标签: python ascii

我正在尝试根据字母'h'打印ascii表。例如,如果我希望h等于256,我想根据h的值打印出其他128个字符中的每一个。如果我希望h等于1005,我还需要根据h的位置打印所有剩余的ASCII字符。我觉得我下面的代码在动作'index + n'的正确轨道上,但我不太确定:

import string

values = dict()

for index, letter in enumerate(string.printable):
        values[letter] = index + 'some number'

print values

1 个答案:

答案 0 :(得分:0)

好的,首先你必须在Python中生成一个ASCII表。 string不能这样做,但是你知道索引包含0到127,chr函数输出索引的给定字符。

您现在可以检索h(或任何其他字母)的索引。您可以推导出偏移量,并将此偏移量应用于其他字母。以下是计算所有内容的代码:

h_desired_index = 1200

ascii_table = list(map(chr, range(128)))
h_index = ascii_table.index('h')
delta_index = h_desired_index - h_index
new_table = {}

for index, character in enumerate(ascii_table):
    new_table[character] = index + delta_index

我得到的输出:

{'\x00': 1096,
 '\x01': 1097,
 '\x02': 1098,
 '\x03': 1099,
 '\x04': 1100,
 '\x05': 1101,
 '\x06': 1102,
 '\x07': 1103,
 '\x08': 1104,
 '\t': 1105,
 '\n': 1106,
 '\x0b': 1107,
 '\x0c': 1108,
 '\r': 1109,
 '\x0e': 1110,
 '\x0f': 1111,
 '\x10': 1112,
 '\x11': 1113,
 '\x12': 1114,
 '\x13': 1115,
 '\x14': 1116,
 '\x15': 1117,
 '\x16': 1118,
 '\x17': 1119,
 '\x18': 1120,
 '\x19': 1121,
 '\x1a': 1122,
 '\x1b': 1123,
 '\x1c': 1124,
 '\x1d': 1125,
 '\x1e': 1126,
 '\x1f': 1127,
 ' ': 1128,
 '!': 1129,
 '"': 1130,
 '#': 1131,
 '$': 1132,
 '%': 1133,
 '&': 1134,
 "'": 1135,
 '(': 1136,
 ')': 1137,
 '*': 1138,
 '+': 1139,
 ',': 1140,
 '-': 1141,
 '.': 1142,
 '/': 1143,
 '0': 1144,
 '1': 1145,
 '2': 1146,
 '3': 1147,
 '4': 1148,
 '5': 1149,
 '6': 1150,
 '7': 1151,
 '8': 1152,
 '9': 1153,
 ':': 1154,
 ';': 1155,
 '<': 1156,
 '=': 1157,
 '>': 1158,
 '?': 1159,
 '@': 1160,
 'A': 1161,
 'B': 1162,
 'C': 1163,
 'D': 1164,
 'E': 1165,
 'F': 1166,
 'G': 1167,
 'H': 1168,
 'I': 1169,
 'J': 1170,
 'K': 1171,
 'L': 1172,
 'M': 1173,
 'N': 1174,
 'O': 1175,
 'P': 1176,
 'Q': 1177,
 'R': 1178,
 'S': 1179,
 'T': 1180,
 'U': 1181,
 'V': 1182,
 'W': 1183,
 'X': 1184,
 'Y': 1185,
 'Z': 1186,
 '[': 1187,
 '\\': 1188,
 ']': 1189,
 '^': 1190,
 '_': 1191,
 '`': 1192,
 'a': 1193,
 'b': 1194,
 'c': 1195,
 'd': 1196,
 'e': 1197,
 'f': 1198,
 'g': 1199,
 'h': 1200,
 'i': 1201,
 'j': 1202,
 'k': 1203,
 'l': 1204,
 'm': 1205,
 'n': 1206,
 'o': 1207,
 'p': 1208,
 'q': 1209,
 'r': 1210,
 's': 1211,
 't': 1212,
 'u': 1213,
 'v': 1214,
 'w': 1215,
 'x': 1216,
 'y': 1217,
 'z': 1218,
 '{': 1219,
 '|': 1220,
 '}': 1221,
 '~': 1222,
 '\x7f': 1223}