缺少参数错误无法工作

2024-09-29 17:14:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望我有一个简单的问题。我有一个简单的清单

pommes : 54
orange
bananes : 18

如果argv[1]像orange这个词一样丢失了,那么这个程序实际上是不工作的。我曾试图提出一个错误,与这个休止代码,但它没有工作。在这下面我包含了我的代码。你知道吗

if parts[1] == "":
    print("La ligne '", i, "' n'est pas correctement formaté.")
    sys.exit()

这是我的代码块,没有我上面试过的部分就可以工作。你知道吗

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

Tags: 代码formatifsysexitpaslaparts
1条回答
网友
1楼 · 发布于 2024-09-29 17:14:28

在将部件[1]分配给droite droite = parts[1]之前,必须检查部件[1]是否存在,如果部件长度为1,则无法获取部件[1],将引发异常:IndexError: list index out of range。你知道吗

以下是基于您的代码的修复:

for i in message:
parts = i.split(":")
gauche = parts[0].strip()   
droite = parts[1] if len(parts)==2 else 0 # set the default value to 0
try:
    if len(parts) != 2:
        print("La ligne '", i, "' n'est pas correctement formaté.")
        sys.exit()
    elif not gauche.isalpha():
        print("La ligne '", i, "' n'est pas correctement formaté.")
        sys.exit()
    droite = int(droite)
except ValueError:
    print("La ligne '", i, "' n'est pas correctement formaté.")
    sys.exit()

顺便说一句,您在代码中引发的异常,只有在异常为ValueError时才会引发。你知道吗

相关问题 更多 >

    热门问题