天天看点

python十进制转二进制函数_十进制转二进制引发的一系列问题

本来只是做《算法设计与分析基础》的作业 P14 习题1.2.4

写出将十进制正整数转换为二进制整数的标准算法。

自己写了一个,可是不太满意,遂在网上搜索。

想着python有内置函数bin(),看看能不能找到源码,去pycharm用Ctrl 双击,点开的文件里只有一句 pass()。

python十进制转二进制函数_十进制转二进制引发的一系列问题

找cpython源码,

GitHub插件

def mybin(x):

    def gen(x):
        y = abs(x)
        while y > 0:
            yield y%2
            y = y >> 1
        else:
            if x == 0: yield  0
    l = [i for i in gen(x)]
    l.reverse()
    if x >= 0:
        print('%d' * len(l)%tuple(l))
    else:
        print('-' + ('%d'* len(l) % tuple(l)))
           

'''列表生成式建立列表'''

# mylist = [x*x for x in range(3)]

# for i in mylist:

# print(i)

'''生成器:可迭代,但是只可以读取一次'''

# mygenerator = (x*x for x in range(3))

# for i in mygenerator:

# print(i)

#

# for i in mygenerator: #没有执行

# print(i)

'''

duck typing

多态性

每个类必须实现相同的方法

'''

yield 用法

嵌套函数

tuple

明天再写睡觉啦