CS50 vanity plates问题:为何is_valid函数需显式return True?
关于CS50 Vanity Plates问题中return True的疑问解答
首先得明确Python函数的默认返回规则:如果函数里没有显式写return语句,不管前面的逻辑有没有满足条件,函数最后都会默认返回None。
你写的is_valid函数是用来判断车牌合法性的——当函数返回True时,程序输出合法;返回False或None时,输出Invalid。
举个你场景里的代码例子:
def is_valid(s): if 2 <= len(s) <= 6: # 这里原本有return True,现在移除了 # 后续其他检查逻辑...
当输入的车牌长度符合2-6位时,代码会进入if分支,但因为没有return语句,程序会继续执行后续代码直到函数结束,最终返回None。而在Python的布尔判断里,None会被当作False处理,所以程序会判定车牌不合法,输出Invalid。
而加上return True的作用,就是在长度符合要求时,明确告诉函数:这个情况是合法的,直接返回True,这样调用该函数的代码就能拿到正确的布尔值,输出对应的结果。
说白了:Python不会自动帮你返回True,函数的返回值必须通过return语句明确指定。只要没写return,不管逻辑是否满足条件,函数最终都会返回None,被判定为不合法。
内容的提问来源于stack exchange,提问作者Jay Z
相关产品推荐
相关产品推荐

