2017-01-12 68 views
-1

我在编码错误类型错误:不支持的操作类型为 - :“海峡”和“海峡”

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 (most recent call last): File "C:/Users/MrX/PycharmProjects/grain/grain.py", line 16, in ie=ki[i]-'0'; TypeError: unsupported operand type(s) for -: 'str' and 'str'

我希望你能帮助我解决它。由于

+1

什么应该做你的代码? –

+1

即使里面有数字,也不能从字符串中减去字符串。 –

回答

0

你调用一个字符串-操作:

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

我想你想在Python简单引号中提到的人物的ASCII值。但是,在Python中,简单的引号和双引号是严格等价的,它们都表示字符串。

你想要什么ord功能:

>>> ord('a') 
97 
相关问题