2017-01-12 12 views
-1

ich einige Fehler habe in meinemFehler Typeerror: nicht unterstützte Operandtyp (e) für: - 'str' und 'str'

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 

Codierung Dieser Fehler

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'

Ich hoffe, Sie können hilf mir, es zu beheben.

Dank
+1

Was Ihr Code tun soll? –

+1

Sie können eine Zeichenfolge nicht von einer Zeichenfolge subtrahieren, auch wenn sich darin Zahlen befinden. –

Antwort

0

Sie den Aufruf der - Operanden an einer Schnur:

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

Ich nehme an, Sie dachten, einfache Anführungszeichen in Python auf den ASCII-Wert des Zeichens bezeichnet. In Python sind jedoch einfache Anführungszeichen und doppelte Anführungszeichen genau gleichwertig, und sie stellen beide Zeichenfolgen dar.

Was Sie wollen, ist die ord Funktion:

>>> ord('a') 
97 
Verwandte Themen