2016-11-06 13 views
0
def enterNumber(): 
    number = input("Please enter a number to convert to binary. ") 
    while True: 
     try: 
      int(number) 
      convertDenary() 
     except ValueError: 
      enterNumber() 
def convertDenary(): 
     binaryNumber = ['','','','','','','',''] 
     print(enterNumber()) 
     if enterNumber() > 128: 
      enterNumber() - 128 
      binaryNumber[0] == 1 
enterNumber() 

Try- Except ValueError循環,因爲我打算它,但它不會中斷。我試過在int(number)下加入break,刪除while True:並加入convertDenary()看看它是否會強制子程序停止並啓動另一個,但它仍然不起作用。Try-除了ValueError循環

我得到一個無限循環的「請輸入數字以轉換爲二進制。」 任何想法?

+0

只需在您的'try'語句中調用'enterNumber'第一件事物,並在'convertDenary'之後中斷。順便說一下你的縮進是錯誤的。 –

+0

@ Jean-FrançoisFabre縮進錯在哪裏? – Joseph

回答

0
def convertToBinary(number): 
    if number > 1: 
     convertToBinary(number//2) 
    elif number<1: 
     enterNumber() 

    print(number % 2,end = '') 

def enterNumber(): 
    number = (input("Please enter a number to convert to binary : ")) 
    try: 
     convertToBinary(int(number)) 
    except Exception as e: 
     print(e) 

enterNumber() 
+0

這很好,但是,如何才能使此連續循環直到輸入有效的輸入? – Joseph

+0

沒關係,我想通了,謝謝! – Joseph

+0

@Joseph我編輯的代碼。希望你的問題解決了! –