不是最优代码,不过至少算出来了,呵呵
1. type(num) == type(1),判断num是不是整数,type(1)是整数int,type(1.2)是float,type('a')是字符串,type(str),type(list),type(tuple),type(dict)都是type
2. 不好判断range的范围,所以用了break,当商是0时,主动退出循环
3. 八进制,十六进制的有空再研究下
=====================================================
#!/usr/bin/python
#coding=utf-8'''
Created on 2012-2-22
Q:给定一个整数,求其二进制数中1的个数
remainder 余数,temp是商
'''
num = input("请输入一个整数:")
print num
remainder=[]
if type(num) != type(1):
print "请输入一个整数!"
else:
for i in range(0,num):
temp=num/2
remainder.append(num%2)
#print remainder
#print "商是:%d"%temp
i=i+1
num=temp
if temp==0:
break
remainder.reverse()
#print remainder
print remainder.count(1)