Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中使用if/else语句(请不要关闭)_Python_If Statement_For Loop - Fatal编程技术网

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

如何在python中使用if/else语句(请不要关闭),python,if-statement,for-loop,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 o

我有一个项目,我必须把二进制翻译成十六进制。和十进制

以下是代码,可能并不十分感谢任何帮助: 问题是,当我输入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迭代到字符串的长度。另外,我认为您的else块缩进过大。改用这个:

for b in binary:
但这并不能解决你所有的问题。首先,b将是一个单字符字符串,因此b==2将始终为false。我建议将b改为int,然后看看它是否大于1-intb>1


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

Python已经将其作为一个内置项—您可以使用任意基将字符串转换为整数。例如,intuser_输入,2表示二进制。看看这里:@MooingRawr不,OP没有将二进制与任何东西进行比较。那么长的if语句可以更简单地写成if 2
for b in binary: