1.贴题
题目来自PythonTip
光棍的悲伤
光棍们对1总是那么敏感,因此每年的11.11被戏称为光棍节。小Py光棍几十载,光棍自有光棍的快乐。让我们勇敢地面对光棍的身份吧,现在就证明自己:给你一个整数a,数出a在二进制表示下1的个数,并输出。
例如:a=7
则输出:3
2.说明
思路如下
1. 将a转换为二进制数
2. 数一下有几个1
3.参考代码
b = bin(a) #将a转换为二进制数
print(str(b).count("1")) #数一下有几个1
很简单粗暴的一道题。。。
这里唯一要注意的就是count函数只能数字符串,所以1要转换为字符串
4.其他写法
1.每一位都判断是否是1
来自chne
count=1
while a != 1:
b = a%2
a = a//2
if b == 1:
count += 1
print(count)
2.同方法一行代码
来自fiveyes
print((bin(a)).count('1'))
看完这个发现bin(a)返回的类型是字符串。。。
5.扩展
python中进制的相互转换
bin 二进制
oct 八进制
hex 十六进制
可参考
Python 十进制转二进制、八进制、十六进制(菜鸟教程)
Python 二进制,十进制,十六进制转换(博文)