首页 > 解决方案 > 反斜杠和 unicode

问题描述

我正在制作平假名翻译器的罗马字,当我尝试这种连接时出现错误。我制作了一个键列表,并使用 for 循环按照 unicode 的顺序性质制作字典。

combos = {}
for hexy in range(12363, 12435):
    combos[sounds[12363 - hexy]] = ('\u%s' % str(chr(hex(hexy))))

我得到错误 SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 0-1: truncated \uXXXX escape

我尝试将反斜杠加倍,将 u 和反斜杠分开,使用 + 而不是值插入,并检查其他人何时遇到类似错误。

标签: pythonstringunicodeconcatenationbackslash

解决方案


如果你想要角色,只需使用chr(hexy).

如果您想要转义码并假设 Python 3.6+,请使用f'\\u{hexy:04x}'.

例如(sounds由于未定义而被删除):

combos = {}
for i,hexy in enumerate(range(12363, 12435)):
    combos[i] = chr(hexy)
print(combos)

结果:

{0: 'か', 1: 'が', 2: 'き', 3: 'ぎ', 4: 'く', 5: 'ぐ', 6: 'け', 7: 'げ', 8: 'こ', 9: 'ご', 10: 'さ', 11: 'ざ', 12: 'し', 13: 'じ', 14: 'す', 15: 'ず', 16: 'せ', 17: 'ぜ', 18: 'そ', 19: 'ぞ', 20: 'た', 21: 'だ', 22: 'ち', 23: 'ぢ', 24: 'っ', 25: 'つ', 26: 'づ', 27: 'て', 28: 'で', 29: 'と', 30: 'ど', 31: 'な', 32: 'に', 33: 'ぬ', 34: 'ね', 35: 'の', 36: 'は', 37: 'ば', 38: 'ぱ', 39: 'ひ', 40: 'び', 41: 'ぴ', 42: 'ふ', 43: 'ぶ', 44: 'ぷ', 45: 'へ', 46: 'べ', 47: 'ぺ', 48: 'ほ', 49: 'ぼ', 50: 'ぽ', 51: 'ま', 52: 'み', 53: 'む', 54: 'め', 55: 'も', 56: 'ゃ', 57: 'や', 58: 'ゅ', 59: 'ゆ', 60: 'ょ', 61: 'よ', 62: 'ら', 63: 'り', 64: 'る', 65: 'れ', 66: 'ろ', 67: 'ゎ', 68: 'わ', 69: 'ゐ', 70: 'ゑ', 71: 'を'}

推荐阅读