다음 블록을 작성했습니다.
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
변수입니다.
왜 이런 일이 발생합니까?
에서 생성 한 문자열을 반복 할 때 bin
각 문자는 그 자체가 한 문자 문자열입니다. 따라서 이것이 작동하지 않는 이유는 다음과 같습니다.
1 != '1'
문자를 다시 정수로 변환하여 비교 int('b')
하거나 (작동하지 않습니다!) 문자열과 비교해야합니다.
if n == '1':
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다