2017-01-12 184 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 
相關問題