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

Python 为ascii字符分配不同数字的脚本,python,ascii,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

我正试图打印一个基于字母“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

好的,首先您必须在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}
{'\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,
'': 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,
问: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,
问: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}

string.printable不是ascii顺序谢谢Flavian。这完美地回答了我的问题!太好了!请毫不犹豫地投票并标记为已回答!:)