我写了以下块:
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
变量。
为什么会这样?
答案 0 :(得分:2)
当您遍历bin
生成的字符串时,每个字符本身都是一个字符的字符串。所以这不起作用的原因是:
1 != '1'
您需要将字符转换回整数才能进行比较(请注意int('b')
不起作用!),或者与字符串进行比较:
if n == '1':
答案 1 :(得分:0)
支票应为"如果n ==' 1'"。