猫史档案馆


【Python作品分享】进制转换v2.1【求助帖】

用户:盒子的box盒子的box查看:55 回复:3 评论:13 创建时间:2020-03-18T13:22:42


【作品展示】

center_image

 

【作品介绍】

BUGBUG!

谁来帮帮我!

奖励300源码币!

要求:

效果和https://shequ.codemao.cn/community/256254上的差不多。

 

【作品源代码】

t1 = ('A', 'B', 'C', 'D', 'E', 'F')
t2 = ('10', '11', '12', '13', '14', '15')

def out():
    global num
    for i in num:
        if (i in t2):
            j = list(t2)
            num[j.index(i)] = t1[j.index(i)]
    print('结果是', ''.join(num))


while True:
    try:
        a = 0
        b = 0
        num = list(input('初始值是多少?'))
        for i in num:
            if (i in t1):
                j = list(t1)
                num[j.index(i)] = t2[j.index(i)]
        jz = int(input('此值为几进制?'))
        tjz = int(input('转换为几进制?'))
        if (jz == tjz):
            out()
        else:
            for i in range(len(num)):
                a += (int(num[b]) * (jz ** (len(num) - b - 1)))
                b += 1
            num = [str(a % tjz)]
            a = a // tjz
            while (a != 0):
                num = [str(a % tjz)] + num
                a = a // tjz
            out()
    except:
        print('程序出错了emmm......')

 

【提示】

部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:

https://python.codemao.cn


回复

上一页第 1 页 / 共 1 页下一页
wrmdcxywrmdcxy

如果是想修复Bug,这样肯定不行

如果我遇到了Bug,我会把try...except语句注释,然后再做一次,看一下是什么错误。如果只打印“程序出错了emmm......”是不知道错在哪的

点赞0


评论


wrmdcxywrmdcxy

我正在测试你的代码。。。。

Error1:

IndexError: list assignment index out of range

含义:列表出超出范围的赋值索引

分析:num只有2项,而j.index(i)返回的是5,所以报错

解决:需要设置在相应的索引去更改内容

点赞0


评论


wrmdcxywrmdcxy

调试完成。

t1 = ('A', 'B', 'C', 'D', 'E', 'F')
t2 = ('10', '11', '12', '13', '14', '15')

def out():
    global num
    for i in num:
        if (i in t2):
            j = list(t2)
            num[j.index(i)] = t1[j.index(i)]
    print('结果是', ''.join(num))


while True:
    try:
        a = 0
        b = 0
        num = list(input('初始值是多少?'))
        #出错位置:从此//
        index=0#项数
        for i in num:
            if (i in t1):
                j = list(t1)
                num[index] = t2[j.index(i)]
            index+=1#迭代计算正确的项数
        #至此//
        jz = int(input('此值为几进制?'))
        tjz = int(input('转换为几进制?'))
        if (jz == tjz):
            out()
        else:
            for i in range(len(num)):
                a += (int(num[b]) * (jz ** (len(num) - b - 1)))
                b += 1
            num = [str(a % tjz)]
            a = a // tjz
            while (a != 0):
                num = [str(a % tjz)] + num
                a = a // tjz
            out()
    except Exception as e:#便于调试
        print('程序出错了emm......\n(Error:%s\ndescribe:%s'%(str(e),str(repr(e))))

点赞0


评论

发了哈

不过我已经修好了

???

300源码币啊

??? 源码币?那我也给回你吧,我帮人修Bug是免费的

......买了个这个,真会挑 但我送了300个哎......

我打算明天给你300币,但我没小号,sorry,准备好6个作品哦

就是想问下手机上怎么购买?

或许我可以开个免费找Bug小铺

买一个作品你付50, 其实我收到了60......[捂脸]

???

我试过,你有小号的话可以这样刷金币[偷笑]

额……我只能买到3个。。。