Python 为ascii字符分配不同数字的脚本
我正试图打印一个基于字母“h”的ascii表格。例如,如果我希望h等于256,我希望根据h的值打印出其他128个字符中的每一个。如果我想让h等于1005,我需要根据h的位置打印所有剩余的ASCII字符。我觉得下面的代码与操作“index+n”在正确的轨道上,但我不太确定: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
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。这完美地回答了我的问题!太好了!请毫不犹豫地投票并标记为已回答!:)