2012-03-13 190 views
0

我想我正在计算从一个整数到二进制数的转换错误。我输入了整数6并找回了二进制数0,这是绝对错误的。你们能帮忙吗?这是新的代码。我不明白这个语法错误

def ConvertNtoBinary(n): 

    binaryStr = '' 
    if n < 0: 
     print('Value is a negative integer') 

    if n == 0: 
     print('Binary value of 0 is 0') 
    else: 
     if n > 0: 
      binaryStr = str(n % 2) + binaryStr 
      n = n > 1 
    return binaryStr 

def main(): 
    n = int(input('Enter a positive integer please: ')) 
    binaryNumber = ConvertNtoBinary(n) 
    print('n converted to a binary number is: ',binaryNumber) 

main() 
+1

这是如何与Windows相关的?并且自从什么时候是'ValueError''' SyntaxError' ?! – ThiefMaster 2012-03-13 14:48:29

回答

3

你忘了拨打raw_input()。现在,您尝试将提示消息转换为无法运行的整数。

n = int(raw_input('Enter a positive integer please: ')) 

当然围绕线try..except将是一个不错的主意:

try: 
    n = int(raw_input('Enter a positive integer please: ')) 
except ValueError: 
    n = 0 # you could also exit instead of using a default value 
+0

谢谢,我不相信我忘记了,现在我在二进制文件后直接得到一个无效的语法错误。我不明白为什么,如果我只是定义一个变量。 – NateBUProgrammer 2012-03-13 14:53:04

+1

@NateBUProgrammer:也许你忘了')'? – 2012-03-13 14:54:53

+0

不可能在没有看到实际错误消息的情况下回答。也许你有不匹配的括号。 – ThiefMaster 2012-03-13 14:55:04

0

n = int('Enter a positive integer please: '),你正试图使一个int出字符串的“输入一个正......”。我会假设你忘记了你的raw_input()。你既可以做

n = int(raw_input('Enter a positive integer please: '))

n = raw_input('Enter a positive integer please: ') 
n = int(n) 
0

你不能投了arbitratry字符串文字为int。我认为你所要做的就是调用某种从用户处获得输入的提示方法。