2017-04-19 53 views
-1

我得到了導致我問題的這部分代碼。首先,軟件的這一部分將採用該功能,它將對其進行測試,並可能會顯示錯誤,具體取決於我之前打開的文件。從列表中分離出來的錯誤不起作用

如果我打印(I)它現在在哪裏,它會打印列表和錯誤。我已經嘗試了多種方式來設置錯誤後,而真正的,如果但從來沒有工作。

感謝這裏的部分代碼。

if texte in choix: 
    message = sorted(ligne(texte)) 
    for i in message: 
     parts = i.split(":") 
     gauche = parts[0].strip() 
     droite = parts[1] 
     try: 
      droite = int(droite) 
      print(i) 
     except ValueError: 
      print("La ligne '", i, "' n'est pas correctement formaté.") 
      sys.exit() 
     if not gauche.isalpha(): 
      print("La ligne '", i, "' n'est pas correctement formaté.") 
      sys.exit() 
    break 

else: 
    print("Il faut préciser le nom du fichier à traiter") 
    break 

爲例列表: POMMES:54個 bananes:18個 橙子:結果我收到的30

ananas :12 
clémentines :77 
cerises de terre: 43 

一種是

ananas : 12 
bananes : 18 
cerises de terre : 43 
La ligne ' cerises de terre : 43 ' n'est pas correctement formaté. 

我只想

La ligne ' cerises de terre : 43 ' n'est pas correctement formaté. 
+2

精確縮進在Python代碼非常重要。也許你想[修復](http://stackoverflow.com/posts/43500110/edit)你的縮進,所以這段代碼是有道理的。 – khelwood

+0

你也可以發佈你的確切的錯誤信息? –

+0

對不起,我修好了...複製粘貼壞了。代碼幾乎不能正常工作,但只是在列表顯示錯誤時顯示列表。錯誤在ValueError中:我更新了代碼,以便可以看到我想要的輸入。 – Isen

回答

1

如何:

if texte in choix: 
    message = sorted(ligne(texte)) 
    for i in message: 
     parts = i.split(":") 
     gauche = parts[0].strip() 
     droite = parts[1] 
     try: 
      droite = int(droite) 
      if not gauche.isalpha(): 
       print("La ligne '", i, "' n'est pas correctement formaté.") 
       sys.exit() 
     except ValueError: 
      print("La ligne '", i, "' n'est pas correctement formaté.") 
      sys.exit() 
     print(i) 
    break 

else: 
    print("Il faut préciser le nom du fichier à traiter") 
    break 

但是如果你只是想打印錯誤刪除print(i)

+0

我假設這裏的一部分錯誤是錯誤消息的異常和'如果不是gauche.isalpha():'是相同的。這對調試沒有什麼幫助。 – roganjosh

+1

我完全同意,但坦率地不想進入細節:) – zipa

+0

因爲即時通訊測試的左側和右側的表達式。他們兩人不僅1人。它也沒有工作,因爲我仍然收到錯誤輸出列表。問題是我需要在for和print中處理錯誤,但是如果錯誤發生,我需要排除打印。 – Isen