我在 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。
