本来只是做《算法设计与分析基础》的作业 P14 习题1.2.4
写出将十进制正整数转换为二进制整数的标准算法。
自己写了一个,可是不太满意,遂在网上搜索。
想着python有内置函数bin(),看看能不能找到源码,去pycharm用Ctrl 双击,点开的文件里只有一句 pass()。
找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
明天再写睡觉啦