Skip to main content
 首页 » 编程设计

python之try except 在一个 while 循环中

2025年05月04日12bonelee

我在 while 循环中遇到了 try except 问题。我对编程还是比较陌生,这是我的 A2 Comp4 项目的一部分。

def CheckValidInitials(initials): 
    CheckIfTrue = False 
    Count = 1 
    while CheckIfTrue == False: 
        while len(initials) == int(3) or len(initials) == int(4): 
            listInitials = list(initials) 
            print(len(initials)) 
            while len(listInitials) - Count >= 0: 
                print(len(initials)) 
                print(len(listInitials) - Count) 
                Count = Count + 1 
                print(listInitials) 
                try: 
                    int(listInitials[Count]) 
                except IndexError and ValueError: 
                    CheckIfTrue = True 
                else: 
                    print("One of your initials is a number, this is not valid") 
                    print() 
                    Count = 1 
                    initials = input("Please enter valid initials: ") 
                    listInitials = list(initials) 
 
        else: 
            initials = input("Please enter valid initials: ") 
        return initials 

我一直收到这个错误:

  File "D:\A2 Computing\Comp4\Prototype\Prototype Mk 3\TeacherInfo.py", line 105, in CheckValidInitials 
    int(listInitials[Count]) 
IndexError: list index out of range 

我的问题是,我认为我在 try except 中排除了 IndexError。它应该会抛出这个问题。

整个代码应该检查首字母(在另一个函数中输入)是否包含任何数字。

请您参考如下方法:

The syntax for multiple exceptions是:

except (RuntimeError, TypeError, NameError): 

and 不是此语法的可识别部分; IndexError 和 ValueError 的计算结果为 ValueError,因此不会捕获任何 IndexError。