2011-12-02 89 views
-1

我正在用C++編寫這段代碼,它不斷給我一個我不想要的答案,所以我認爲我應該把它寫在Python中,所以當我做了它給了我錯誤「*」返回「外部功能([放置在硬盤上],第7行)」。我搜索了它,發現它與縮進有關,所以我重新編寫了這行代碼,但我仍然遇到這個錯誤。另外它自己的程序很可能是錯誤的,我並不是要求你解決這個問題,但理論上它應該可以工作,也就是將十進制轉換爲二進制數字。提前致謝 :)。Python,'返回'外功能錯誤

下面的代碼:

class gimmeANumber(): 
    while True: 
     Number = raw_input("Please can you input a number from 0 to 255\n") 
     if Number < 0 or 255 < number: 
      print "Please enter a valid number\n" 
     else: 
      return Number 

class decToBinary(): 
    Binary_Converter = 128 
    i = 0 
    Binary = 0 
    while True: 
     Number = gimmeANumber() 
     ONumber = Number 
     while (true): 
      if (Number - Binary_Converter) >= 0: 
       Number =- Binary_Converter 
       Binary_Converter /= 2 
       Binary += 10**7-i 
      else: 
       Binary_Converter /= 2 
      i += 1 
      if i == 8: 
       break 
    print "\nThe origanal number was " + str(ONumber) + " Now it is " + str(Binary) + " in Binary.\n" 

回答

3

由於「class」關鍵字,您告訴Python您正在定義一個類。

但是,你應該定義一個函數,使用「def」。

還有一些其他事情需要修復才能完成此項工作。例如,gimmeANumber()應該返回一個數字,但它當前返回一個字符串。該函數應該是這樣的:

def gimmeANumber(): 
    while True: 
     Number = raw_input("Please can you input a number from 0 to 255\n") 
     Number = int(Number) 
     if Number < 0 or 255 < Number: 
      print "Please enter a valid number\n" 
     else: 
      return Number 
0

Python有一個內置函數將十進制轉換爲二進制(bin())。

number = int(raw_input('Give me a decimal integer, please: ')) 
print '%d in decimal is equivalent to %s in binary' % (number, bin(number)[2:]) 

,並從任何鹼轉化爲十進制,你可以做這樣的事情:

number = int(raw_input('Give me a binary integer, please: ')) 
print '%d in binary is equivalent to %d in binary' % (number, int(number, 2)) 
+0

奇怪的是,它看起來像他的計算的二進制數作爲一個基本值10。也就是說,輸入10應該產生十進制值12 - 而不是字符串「12」。 –