我的做法,,这个题在于必须补0
def reverseBits(n):

    num=32-len(bin(n)[2:])
    m = bin(n)[2:][::-1]
    if num > 0:
        for i in range(num):
            m=m+'0'
    print(m,int(m,2))

    return m

 看到前几做法

        nums=bin(n)
        nums=nums.lstrip('0b')
        nums=nums.zfill(32)   
        #zfill 一直没找到。。。。原来是这个
        nums=nums[::-1]
        return int(nums,2)            

zfill()用法:

描述

Python zfill() 方法返回指定长度的字符串,原字符串右对齐,前面填充0。

语法

zfill()方法语法:

str.zfill(width)


摘自:http://www.runoob.com/python/att-string-zfill.html

另一种,目前第一的做法
 
1         binNum = bin(n)
2         binStr = str(binNum)
3         binStr = binStr[2:]
4         #rjust..对应应该有ljust#
5         reverseStr = binStr.rjust(32, '0')
6         reverseStr = reverseStr[::-1]
7 
8         reverseNum = int(reverseStr, 2)
9         return reverseNum

描述

rjust() 返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串。如果指定的长度小于字符串的长度则返回原字符串。

语法

rjust()方法语法:

str.rjust(width[, fillchar])

参数

  • width -- 指定填充指定字符后中字符串的总长度.
  • fillchar -- 填充的字符,默认为空格。

摘自:http://www.runoob.com/python3/python3-string-rjust.html