Python检查几个if条件(查找并用数字替换单词)

Python检查几个if条件(查找并用数字替换单词),python,if-statement,search,replace,return,Python,If Statement,Search,Replace,Return,我想找一根蓝色或红色的线,把它变成数字1或2。 我的代码2中有if条件。这两个都是真的。所以我应该得到数字1和2作为输出。 但取决于我放回的位置,我总是得到1或2,但从来不会同时得到1和2。我错过了什么?不可能同时有两个if条件吗? 例如,我的输入文本如下所示: myInput = "I like the colors blue and red." def check_color(document): for eachColor in document: if ("

我想找一根蓝色或红色的线,把它变成数字1或2。 我的代码2中有if条件。这两个都是真的。所以我应该得到数字1和2作为输出。 但取决于我放回的位置,我总是得到1或2,但从来不会同时得到1和2。我错过了什么?不可能同时有两个if条件吗? 例如,我的输入文本如下所示:

myInput = "I like the colors blue and red."

def check_color(document):

    for eachColor in document:

        if ("blue" in myInput):
            color_status = "1"
            #return color_status # only 1 as result

        if ("red" in myInput):
            color_status = "2"
            #return color_status # only 1 as result
        else:
            color_status = "0"
            #return color_status # only 1 as result
    #return color_status # only 2 as result
无任何返回->输出:无 函数调用 这是一种方法

演示:

使用all检查文本中是否有所有颜色 elif检查其他条件。 当然,您需要一个return语句才能得到任何结果。问题在于这个概念:如果您想要返回零个或多个值,列表将是最简单的解决方案。您的代码只是用2覆盖1

   color_status = []
   if "blue" in myInput:
        color_status.append("1")

   if "red" in myInput:
        color_status.append("2")

   return color_status
所以我应该得到数字1和2作为输出

不可以。一旦函数到达return语句,就会返回一个值,并且函数不再继续

不可能同时有两个if条件吗

对。但是,如果在计算结果为True的if子句中放入return语句,则所有后续if子句都将被忽略

无任何返回->输出:无

对。如果函数不返回或不产生任何结果,它将不返回任何结果

在每种情况下,您需要仔细定义您想要的输出。例如,如果要将值列表作为输出,请初始化列表并将其追加。字典将使您的解决方案更易于实现和扩展

下面是一个演示:

myInput = "I like the colors blue and red."

def check_color(var):

    c_map = {'blue': 1, 'red': 2}

    L = []
    for colour, num in c_map.items():
        if colour in var:
            L.append(num)

    return L

print(check_color(myInput))

[1, 2]
   color_status = []
   if "blue" in myInput:
        color_status.append("1")

   if "red" in myInput:
        color_status.append("2")

   return color_status
myInput = "I like the colors blue and red."

def check_color(var):

    c_map = {'blue': 1, 'red': 2}

    L = []
    for colour, num in c_map.items():
        if colour in var:
            L.append(num)

    return L

print(check_color(myInput))

[1, 2]