2017-04-08 21 views
0

ビットストリングの先行ゼロを数えようとしていますが、何らかの理由でプログラムがif文に入りません。たとえprint文でチェックしても0ですが、 if文は無視されます。Python if文が認識されない

提案がありますか? ありがとう!

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

どのように/ bitsは定義されていますか? –

+0

@GrantWinneyごめんなさい。ビットは文字列のバイナリ変換です – helloworld

答えて

4

これを試してみてください:

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

問題があれば-elseステートメントです。整数の代わりに文字列を使用する必要があります。 これが役立つことを願っています!

+0

ありがとう!私はちょうどisinstance(ビット、str)とあなたの権利、それは文字列です。これは意味がある、ありがとう – helloworld

関連する問題