def bytes2human(n):
symbols = ('K', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y')
prefix = {}
for i, s in enumerate(symbols):
prefix[s] = 1 << (i + 1) * 10
for s in reversed(symbols):
if n >= prefix[s]:
value = float(n) / prefix[s]
return '%.1f%s' % (value,s)
return '%sB' % n
python语言n = (n+1)<<1是什么意思
前提n得有一个初始值,比如n=1,不然会报错那么n=n+1的意思就1+1再赋值给变量n,那么n就等于2。然后<<符号是按位左移的意思,就是把对象转为2进制,有效数字往左移动。<<1就是按位左移1个单位。比如2<<1意思就是2按位左移1个单位,2的二进制就是00000010,左移一位就是00000100,转为十进制就是4。那么按位左移多少个单位的操作,你可以理解为对象乘以2的单位次方。上面的2<<1也就是2乘以2的1次方等于4。用编译器测试一下:
>>> n=2
>>> n=n+1
>>> n
3
>>> n<<1
>>> n=(n+1)<<1
>>> n
8