2017-04-08 5 views
0

비트 문자열에서 선행 0을 계산하려고하는데 어떤 이유로 프로그램이 if 문을 사용하지 않고 print 문을 사용하여 확인하고 i가 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

어떻게/비트가 정의되어 있습니까? –

+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 (bits, str)를 했었고 youre right, 그것은 문자열이다. 이것은 의미가있다. – helloworld

관련 문제