以功能结束“ If语句”

时间:2019-03-14 13:53:06

标签: python function if-statement

我试图在运行函数以确定某个值确定为0或1时基本上跳过if语句的其余部分。如果该值为0,则通过if语句的其余部分(如果为1) ,它将继续使用if语句并在其中运行。这是代码:

test2.py

import os, sys
from functiontest import function

message = 'foo'
check = 0

if 'foo' in message:
    check = function(message,check)
    print(check)
    print('bar')

if check == 0:
    print('foo not recognized')

功能文件为

functiontest.py

import os, sys

def function(a,b):
    print('checking message')
    a = a.split()
    print(a)
    if a[0] == 'foo':
        b = 1
        print(b)
        return b
    else:
        b = 0
        return b

当检测到除“ foo”以外的其他字词时,应仅输出“无法识别foo”。使用“ foot”一词,它仍然在if语句中运行代码,因为它包含foo,而我不希望这样做。有没有办法从函数侧传递其余的if语句?我知道如何在主test2.py代码中使用if else语句来执行此操作,因为我传递了check参数,但是我希望使主代码尽可能的简洁,因此有一种方法可以在内部完成functiontest.py?谢谢。

1 个答案:

答案 0 :(得分:0)

这可以通过执行How to exit an if clause

中建议的方法来解决。

我不清楚这将解决您的问题,但这将是我的代码:

import os, sys

def check_message(message):
    print('Checking message')
    for m in message.split():
        if m == 'foo':
            return True
        else:
            return False


def wrapper(message):
    if 'foo' in message:
        check = check_message(message)
        if check:
            return
        print(check)
        print('bar')


message = 'foo'
wrapper(message)

但是我不明白为什么要仔细检查消息,而不仅仅是:


def wrapper(message):
    if check_message(message)
        return
    print('bar')


message = 'foo'
wrapper(message)

在这种情况下,仅当邮件没有包含'bar'个单词时才会打印'foo'

另外,关于代码,您不需要输入check,因为您没有在function函数中使用它,因此无论如何都将其覆盖。

最好使用TrueFalse代替10