2017-04-21 28 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:列表索引出范围 –

相关问题