输入不是字符串或不是特定长度时的Python函数错误

时间:2017-11-20 21:40:30

标签: python function error-handling

我是Python的新手,当输入不是长度为21的字符串时,如果设计一个显示错误消息的函数的文献很困惑。这是最新的排列不起作用。例如,对于长度为19的字符串,它不会返回正确的错误消息。我的背景不在comp sci中,因此对此有任何帮助以及对其工作原理的解释会有所帮助。谢谢

test = "test_string_for_slice"
test2 = "test_string_for_"

def stringSlice(x):
    if type(x) != str:
        raise Exception("The input is not a string.")
    elif len(x) != 21:
        raise ValueError("The input is not exactly 21 characters.")
    else:
        slice1 = x[0:6]
        slice2 = x[6:12]
        slice3 = x[13:]
        return slice1, slice2, slice3

stringSlice(test)
stringSlice(test2) #this should return an error but does not

1 个答案:

答案 0 :(得分:1)

当您打算使用occCode时,似乎您正在使用变量x

def stringSlice(x):
    if type(x) != str:
        raise Exception("The input is not a string.")
    elif len(x) != 21:   #Note this is where things got changed!!!
        raise ValueError("The input is not exactly 21 characters.")
    else:
        slice1 = x[0:6]
        slice2 = x[6:12]
        slice3 = x[13:]
        return slice1, slice2, slice3