在python中使用“or”总是计算为true,并且它可能与其他条件冲突

在python中使用“or”总是计算为true,并且它可能与其他条件冲突,python,python-3.x,Python,Python 3.x,我正在用Python编写一个简单的布尔表达式,它应该遵循以下规则: 您选择的参数是衣服的款式,在范围内 0..10,日期是在相同范围内约会对象衣服的时尚度。 获取表的结果被编码为int值,带有 0=不,1=可能,2=是。 如果你们中的任何一个非常时尚,8个或更多,那么结果是2个是。除非你们中的任何一个的样式是2或 如果小于,则结果为0否。否则,结果可能为1。 我的代码运行良好,但有特定条件除外。如果你的造型是8,而你的约会对象的造型是2或更少呢?应该运行哪个结果,为什么?这是我的密码 def d

我正在用Python编写一个简单的布尔表达式,它应该遵循以下规则:

您选择的参数是衣服的款式,在范围内 0..10,日期是在相同范围内约会对象衣服的时尚度。 获取表的结果被编码为int值,带有 0=不,1=可能,2=是。 如果你们中的任何一个非常时尚,8个或更多,那么结果是2个是。除非你们中的任何一个的样式是2或 如果小于,则结果为0否。否则,结果可能为1。 我的代码运行良好,但有特定条件除外。如果你的造型是8,而你的约会对象的造型是2或更少呢?应该运行哪个结果,为什么?这是我的密码

def date_fashion(you, date):
    if you>=8 or date>=8:
        return 2
    elif you<=2 or date<=2:
        return 0
    else:
        return 1
如果我运行date_fashion10,2,它应该为0,但它也可以为2


哪一个是正确的答案?这里两个条件同时冲突,哪一个是正确的?结果0或结果2,为什么?我的代码给出2,但也可以给出0。

根据您的情况:如果您中的任何一位非常时尚,8或更多,那么结果是2是。例外情况是,如果任何一方的样式为2或更少,则结果为0否,则应将异常置于正常条件之前。因此,当你看到一个适合你的情况时:如果你们中的任何一个非常时髦,8个或更多,那么结果是2个是。例外情况是,如果任何一方的样式为2或更少,则结果为0否,则应将异常置于正常条件之前。那么当你看到一个 代码给出结果2,因为条件you>=8或date>=8优先于其他条件。 代码一次只处理一个条件。并执行代码 返回Truthy值的第一个条件的。 查看有关真实值和虚假值的文章

代码给出结果2,因为条件you>=8或date>=8优先于其他条件。 代码一次只处理一个条件。并执行代码 返回Truthy值的第一个条件的。 查看有关真实值和虚假值的文章


如果运行date_fashion10,2,它将始终返回2,而不会返回0。因为you=10满足条件you>=8,所以函数执行return0语句并立即停止。在这种情况下,下一个语句将不会运行。

如果运行date\u fashion10,2,它将始终返回2,而不会返回0。因为you=10满足条件you>=8,所以函数执行return0语句并立即停止。在这种情况下,将不运行下一个语句。

在定义条件时,尝试从确定的条件到不太确定的条件设置优先级

例如


1.无保留当您或date is=8有1个以上条件时,他们中的任何人都不应尝试在定义条件时优先考虑,从确定条件到不确定条件

例如


1.无保留当您或date is=8有1个以上的条件时,它们都不应该是它不能返回0,因为第一个条件为true,所以它返回2。在您的示例中,您的代码不能给出0,因为您首先检查是否有大于8的条件,如果为true,则不检查是否有小于2的条件。在编写代码之前,您需要清楚地定义您的逻辑和问题状态。你给出的例子的预期结果应该是什么。应该是0还是2。如果可以,那么根据什么规则决定返回哪个?是随机的吗?或者,是否有某种逻辑决定了条件是按照您编写它们的顺序计算的,在您提到的情况下,不可能返回0,所以这都是关于顺序正确的?例如,如果我在第一个和第二个之间切换顺序,它将给出0而不是2?它不能返回0,因为第一个条件为true,所以它返回2。在您的示例中,您的代码不能给出0,因为您首先检查是否有大于8的值,如果该值为true,则不检查是否有小于2的值。在编写代码之前,您需要清楚地定义您的逻辑和问题状态。你给出的例子的预期结果应该是什么。应该是0还是2。如果可以,那么根据什么规则决定返回哪个?是随机的吗?或者,是否有某种逻辑决定了条件是按照您编写它们的顺序计算的,在您提到的情况下,不可能返回0,所以这都是关于顺序正确的?比如,如果我在第一个和第二个之间切换顺序,它将给出0而不是2?谢谢你的回答!没问题如果您对Python中的条件有任何进一步的问题,请说出来,如果您愿意,我们可以创建聊天室。谢谢您的回答!没问题如果您对Python中的条件有任何进一步的疑问,只需说出来,如果您愿意,我们可以创建聊天室。
def date_fashion(you, date):
    if you<=2 or date<=2:
        return 0
    elif you>=8 or date>=8:
        return 2
    else:
        return 1

def date_fashion(you, date):
    if you<=2 or date<=2:
        return 0
    elif you>=8 or date>=8:
        return 2
    return 1