鱼C论坛

 找回密码
 立即注册
查看: 2887|回复: 5

python第17讲课后题动动手2将十进制转换为二进制

[复制链接]
发表于 2017-1-2 12:33:19 | 显示全部楼层 |阅读模式
2鱼币
def trans2(x):
    i = 0
    trans = 'ob'
    while i >= 0:
        a = int(x/(2**i))
        b = str(a%2)
        i += 1
        trans = trans[:2]+b+trans[3:]
        if a <= 0:
            break
    print(trans)
运行trans2(6)得到ob0,为什么trans的循环没有实现啊

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-1-2 13:16:06 | 显示全部楼层
  1. trans = trans[:2]+b+trans[3:]
  2.         #这行不对,你这样写是把 b 的值放在第3个位置上,当每次循环时 b 都会覆盖前一次的值
  3.         #应该这样:将最后一个索引改为2,trans = trans[:2]+b+trans[2:]  
复制代码

评分

参与人数 1荣誉 +3 鱼币 +3 贡献 +2 收起 理由
hello,小颗 + 3 + 3 + 2

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-1-2 13:19:48 | 显示全部楼层
trans = trans[:2]+b+trans[2:]

评分

参与人数 1荣誉 +2 鱼币 +2 贡献 +1 收起 理由
hello,小颗 + 2 + 2 + 1

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-1-3 10:21:19 | 显示全部楼层

谢谢啊!我把替换想成添加了,字符好像没insert这个功能
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-1-3 10:21:50 | 显示全部楼层
冬雪雪冬 发表于 2017-1-2 13:19
trans = trans[:2]+b+trans[2:]

谢谢啊!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-1-7 11:23:08 | 显示全部楼层
我也不太明白,学习了
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-2-24 19:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表