你如何在python中使用if / else语句(请不要关闭)

时间:2016-12-06 20:03:01

标签: python if-statement for-loop

我有一个项目,我必须将二进制文件转换为十六进制。和十进制

这是代码,它可能不是那么漂亮任何帮助非常感谢: 问题是,当我输入1或0时它仍然给我:有错误请重新输入您的二进制数。我的代码中的(一个和零)

binary = raw_input("What Binary up to 8-bits would you like to use?")

if len(binary) <= 8:

    for b in range(1,len(binary)+1):

        if b ==2 or b==3 or b==4 or b==5 or b==6 or b==7 or b==8 or b==9:

          print "**There is an error please re-type your binary number. (one's and zero's)**"
        else:
            print "Your code is too long! it needs to be 8 or less characters to 
proccess!"

1 个答案:

答案 0 :(得分:2)

for b in range(1, len(binary)+1):

您没有迭代二进制字符串中的字符,而是从1到字符串的长度进行迭代。另外,我认为你的else块是过度缩进的。请改用:

for b in binary:

但这不会解决你所有的问题。例如,b将是一个单字符的字符串,因此b==2将始终为false。我建议将b更改为int,然后查看它是否大于1 - int(b) > 1

然而,你真正应该做的是测试你不完全确定的每一步,以确保你真正得到你期望的。如果您在print(b)循环中插入print b(或for for Python 2)行,您会看到它不是您期望的值。