2017-04-21 32 views
0

我有這樣一個塊:嘗試將字符串的測試部分從列表

example of list: 
pommes : 54 
bananes : 18 : 99 
orange 

它是測試如果左弦,右弦被分離:和正確的字符串類型是int

我試圖讓那個額外的「:99」被捕獲爲一個錯誤。此外,如果my:不存在。如果有任何方法添加並將其關聯到gauche2 [2]。

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() 
+0

請修正縮進,目前這不是有效的Python。 '如果len(parts)== 3:'可以檢查你是否有3個部分。什麼是'gauche2'? – AChampion

+0

gauche [2]會是一個新的論據,將有部分[2]分配? sry我修正了縮進 –

+0

當你完成列表時,數據需要看起來像什麼? – brennan

回答

1

你可以使用分裂()len個

data = """ 
exemple of list: 
pommes : 54 
bananes : 18 : 99 
orange 
""" 

for line in data.splitlines(): 
    if len(line.split(':')) > 2: 
     raise ValueError(line, '<< bad line') 

對於示例:

for i in message: 
    parts = i.split(":") 
    if len(parts) > 2: 
     raise ValueError(i, '<< bad line') 
+0

哦,我現在得到它,謝謝 –

+0

不錯,而不是提高錯誤,你也可以指定另一個變量,如果聲明部分[2]。 – brennan

+0

吶,我需要打印一條消息,然後sys.exit()也可以看看我的另一個問題...因爲橙色ligne是獨自我得到這個錯誤droite =部分[1] IndexError:列表索引出範圍 –

相關問題