Python 从列表中分离的错误不起作用

Python 从列表中分离的错误不起作用,python,Python,我的代码中有一部分导致了我的问题。首先,软件的这一部分将执行该功能,它将对其进行测试,并根据我先前打开的文件显示错误 如果我现在打印(i)的位置,它会打印列表和错误。我尝试了多种方法来设置错误后的while true和if,但从未奏效 谢谢,这是代码的一部分 if texte in choix: message = sorted(ligne(texte)) for i in message: parts = i.split(":") gauche

我的代码中有一部分导致了我的问题。首先,软件的这一部分将执行该功能,它将对其进行测试,并根据我先前打开的文件显示错误

如果我现在打印(i)的位置,它会打印列表和错误。我尝试了多种方法来设置错误后的while true和if,但从未奏效

谢谢,这是代码的一部分

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
列表示例: 波姆斯:54 巴南: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é.
这个怎么样:

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)

准确的缩进在Python代码中非常重要。也许你希望你的缩进,这样这个代码就有意义了。你也可以发布你收到的确切错误消息吗?对不起,我修复了它…复制粘贴坏了。这段代码几乎不能正常工作,但它只显示列表,而不显示错误。错误在ValueError中:我已经更新了我的代码,这样你就可以看到我想要的输入。只需删除
try
块中的
print(I)
。@Isen我看不到显示的任何列表。我假设这里的部分混乱是,异常的错误消息和
if not gauche.isalpha():
是相同的。这对调试没有什么特别的帮助。我完全同意,但坦率地说,我不想详细说明:)因为我正在测试左表达式和右表达式。他们两个不只是一个。它也不起作用,因为我仍然收到输出中的列表,并带有错误。问题是我需要在for和打印中处理错误,但如果错误发生,我需要排除打印。@我不知道,因为您正在打印拆分之前的
i
。这两条失败路径最终都会出现完全相同的错误消息。@我编辑了代码,它非常难看,但应该符合您的需要。