十进制转二进制的竖式——如何用python按行输出

十进制转二进制的竖式——如何用python按行输出

场景:有一个课程作业:

要求:
作业要求
目标样式:
目标样式
思考:可以用手算,然后用execl实现对齐和缩进。但是很懒,就想着用python一步到位。每一步打印出来并且对齐。

废话不多说,上最终效果图:
最终效果图
上代码:

#十进制转二进制可视化按行输出(整数部分)

#用json实现带下划线输出效果
class Format:
    end = '\033[0m'
    underline = '\033[4m'
    
FinalList = []
dividedList = []

#要处理的数
number = 127546

print(bin(number))

while number != 1:
    _new_number, divided =  divmod(number, 2)
    print('2|'+Format.underline +"{:>7}".format(number)+Format.end+"{:>7}".format(divided))
    number = _new_number
    FinalList.append(divided)
    dividedList.append(number)

if number == 0:
    print('0|0')    
    FinalList.append(divided)
    dividedList .append(0)
else:
    print('        1      1')    #这里自行手动对齐
    FinalList.append(1)
    dividedList.append(1)


#print(FinalList[::-1]) # should match with the `bin` result
#print(dividedList)

总结:
学到了两点。

  • 带下划线输出效果
class Format:
    end = '\033[0m'
    underline = '\033[4m'
	print('2|'+Format.underline +"{:>7}".format(number)+Format.end)
  • 格式化输出
"{:>7}".format(number)	#>号是右对齐,7是隔7个字符位,这样是输出变量
print("|",format("Ursula","*>20"),"|") #这样可以连>左边的*一并打印出来
#过程中还产生了一个有趣的报错 format() takes at most 2 arguments (3 given)

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值