2017-04-08 3 views
0

Ich versuche, die führenden Nullen in einer Bitfolge zu zählen, aber aus irgendeinem Grund geht mein Programm nicht in die if-Anweisungen, auch wenn ich mit print-Anweisungen überprüfe und ich gleich 0 ist if-Anweisung wird ignoriert.Python wenn Anweisung nicht erkannt

Irgendwelche Vorschläge? Danke!

bits = bin(int(binascii.hexlify(hex_int),16) #convert str into binary 
counter = 0 
for i in reversed(bits): 
    print 'i: ', i 
    if i == 0: 
     print 'i: ', i 
     counter+=1 
    elif i==1: 
     break 
+1

Wie/wo sind Bits definiert? –

+0

@GrantWinney tut mir leid, nur aktualisiert es. Bits ist eine binäre Umwandlung einer Zeichenfolge – helloworld

Antwort

4

Versuchen Sie folgendes:

counter = 0 
for i in reversed(bits): 
    print 'i: ', i 
    if i == '0': 
     print 'i: ', i 
     counter+=1 
    elif i=='1': 
     break 

Das Problem ist in der if-else-Anweisung. Sie müssen eine Zeichenfolge anstelle einer Ganzzahl verwenden. Hoffe, das hilft!

+0

Danke! Ich habe gerade instance (Bits, Str) und du bist richtig, es ist eine Zeichenfolge. Das macht Sinn, vielen Dank – helloworld