无法将字符串转换为十六进制int以在chr()中使用

时间:2018-11-10 01:41:09

标签: python-3.x

我正在尝试编写代码以可读形式打印化学方程式。除了下标,我还有其他所有部分。我知道下标的范围为1到9,十六进制代码为0x2081-0x2089。

如果用户输入O_2,它将把所需的2附加到十六进制以创建0x2082,为我提供下标2。但是,我无法将字符串'0x2082'转换为chr的可用类型。

uni = '0x208'
el = input("Enter element (with optional underscore): ")
if ('_' in el):
  end = str(el[len(el)-1])
  hex_code = uni + end
  print(hex_code)
  sub = chr(int(hex_code))

任何指向我正确方向的事情都会受到赞赏。

1 个答案:

答案 0 :(得分:0)

这有效:

In [1]: chr(0x2082)
Out[1]: '₂'

所以您要做的就是这样:

text = 'O_2' # take from user input
subzero = 0x2080
subchr = chr(subzero + int(text[-1]))