Python startswith函数-参数不正确-未引发错误

Python startswith函数-参数不正确-未引发错误,python,function,startswith,Python,Function,Startswith,有人能告诉我为什么这不会抛出错误吗?当用户在http://中键入时,它打印True;当用户在https://中键入时,它打印false。我不明白为什么它会起作用 URL = input("Enter an URL address: ") URL.startswith("http://" or "https://") http://或https://是一个布尔表达式,其计算结果为http://,因为这是or语句的计算结果,因为http://是or语句中遇到的第一个True ish值,所以您需要执

有人能告诉我为什么这不会抛出错误吗?当用户在http://中键入时,它打印True;当用户在https://中键入时,它打印false。我不明白为什么它会起作用

URL = input("Enter an URL address: ")
URL.startswith("http://" or "https://")
http://或https://是一个布尔表达式,其计算结果为http://,因为这是or语句的计算结果,因为http://是or语句中遇到的第一个True ish值,所以您需要执行以下操作:

URL.startswith("http://") or URL.startswith("https://")
此外,正如@ShadowRanger所建议的,您可以通过将接受的起始字符串的元组传递给startswith方法来缩短和加快此过程,如果元组中的任何字符串与字符串的起始匹配,则返回True:

URL.startswith(("http://", "https://"))
http://或https://是一个布尔表达式,其计算结果为http://,因为这是or语句的计算结果,因为http://是or语句中遇到的第一个True ish值,所以您需要执行以下操作:

URL.startswith("http://") or URL.startswith("https://")
此外,正如@ShadowRanger所建议的,您可以通过将接受的起始字符串的元组传递给startswith方法来缩短和加快此过程,如果元组中的任何字符串与字符串的起始匹配,则返回True:

URL.startswith(("http://", "https://"))

可能的重复我们可以说以a或b开头,但我们的意思是以a开头或以b开头。Python需要非常明确的条件。可能的重复可以说是从a或b开始,但我们的意思是从a或b开始。Python需要非常明确的条件。实际上有更好的方法,如果其中任何一个匹配,则返回True。因此,您可以使用http://,https://编写URL.startswithhttp://,它的行为将与您编写的或单独的版本相同,只是输入时间更短,运行速度更快。@ShadowRanger Brilliant,我刚刚在我的答案中添加了您的注释。实际上,有一种更好的方法,如果其中任何一个匹配,则返回True。因此,您可以使用http://,https://编写URL.startswithhttp://,它的行为将与您编写的URL.startswithhttp://,https://或单独的版本相同,只是输入的时间更短,运行的速度更快。@ShadowRanger Brilliant,我刚刚在我的答案中添加了您的注释。