迭代不正确

时间:2014-06-15 12:35:44

标签: python python-2.7 if-statement binary

我写了以下块:

number = 12

def checkio(number):
    count = 0
    for n in bin(number):
         print n
         if n == 1:
             count += 1
    print count


checkio(number)

我得到的输出是:

0
0
b
0
1
0
1
0
0
0
0
0

我无法理解为什么我能够在二进制数和n中迭代print,但我的if将无法正常工作且无法添加到我的count变量。

为什么会这样?

2 个答案:

答案 0 :(得分:2)

当您遍历bin生成的字符串时,每个字符本身都是一个字符的字符串。所以这不起作用的原因是:

1 != '1'

您需要将字符转换回整数才能进行比较(请注意int('b')不起作用!),或者与字符串进行比较:

if n == '1':

答案 1 :(得分:0)

支票应为"如果n ==' 1'"。