2012-03-13 125 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。我認爲你所要做的就是調用某種從用戶處獲得輸入的提示方法。