错误TypeError:不支持的操作数类型 - :' str'和' str'

时间:2017-01-12 04:29:27

标签: python

我的编码错误

ki = raw_input("Enter Initial Key in HEX 20 bit :") 
IV = raw_input("Enter Initial vector in HEX 16 bit :")

for i in xrange(0,20,2):
if(ki[i]>='0' and ki[i]<='9'):
    ie=ki[i]-'0'
elif (ki[i]>='a' and ki[i]<='f'):
    ie=ki[i]-'a'+10
elif (ki[i]>='A' and ki[i]<='F'):
    ie=ki[i]-'A'+10

此错误

  

Traceback(最近一次调用最后一次):文件   &#34; C:/Users/MrX/PycharmProjects/grain/grain.py" ;,第16行,在   即=き[Ⅰ] - &#39; 0&#39 ;; TypeError:不支持的操作数类型 - :&#39; str&#39;和   &#39; STR&#39;

我希望你能帮助我解决它。感谢

1 个答案:

答案 0 :(得分:0)

您在字符串上调用-操作数:

ie = ki[i] - 'a' + 10

我认为你认为Python中的简单引号引用了字符的ASCII值。但是,在Python中,简单的引号和双引号是完全等价的,它们都代表字符串。

你想要的是ord功能:

>>> ord('a')
97