如何统计一个数字的二进制值里面有多少个1
任意给出一个正整数,例如4523
,如何快速统计它的二进制值里面有几个1
?
任意给出一个正整数,例如4523
,如何快速统计它的二进制值里面有几个1
?
在知乎上有这样一个问题:《如果当年汉字真的拼音化了会怎么样?》,下面有一个高赞回答写道:
这个答主的逻辑非常简单,因为《施氏食狮史》这个小故事,全篇只有shi
与si
两种发音,如果用汉语拼音,那么完全无法读懂。只有通过不同的中文汉字,才能正确读懂故事的意思。因此中文汉字比汉语拼音强,信息量比汉语拼音大。
然而这个答主忽略了一个问题,这个小故事实际上只有生活在汉字环境中的人才能想出来。对于完全生活在拼音环境中的人来说,他们的思维方式决定了根本不可能有这个故事产生。
当我们想从 Redis 的列表里面持续弹出数据的时候,我们一般使用lpop
或者rpop
:
1 | import redis |
但这种写法有一个问题,就是每弹出1条数据都要连接一次 Redis 服务器,当你要把1000万条数据从列表里面弹出来的时候,实际上超过一半的时间都消耗在了网络请求上面。
在编程语言中,有常见的符号被赋予了特殊的意义,例如小数点.
,在正则表达式里面表示任意一个非换行符的字符;小于号<
在 html 中表示标签。
但有时候,我们只想让这些符号表示它本来的意思,不想让它的特殊意义表露出来,应该怎么办?
我们知道,读取 Python 字典时,如果某个 Key 不存在,Python 就会报错,如下图所示:
为了防止它报错,我们可以使用.get()
方法:
但每次都要写.get()
稍显麻烦。于是我们可以通过自己实现一个自定义的字典对象,来解决这个问题。
经常使用 Linux 的同学,肯定对|
这个符号不陌生,这个符号是 Linux 的管道符号,可以把左边的数据传递给右边。
我们知道,如果我们在 Python 中想把一段数据持久化到硬盘上,最简单的办法就是写文件:
1 | with open('data.txt', 'w', encoding='utf-8') as f: |
但这样做有一个弊端,就是在读取数据的时候,我们把整个数据读入内存以后,还需要单独写一段代码,用来区分哪里是username
对应的值,哪些是password
对应的值。