检查字符串是否出现在另一个字符串中的函数

时间:2017-04-29 10:34:13

标签: python string function

我目前正在阅读和完成John Guttag的“使用Python进行计算和编程简介”中的每一个练习。我无法解决的一个特殊问题:

  

编写一个函数isIn,接受两个字符串作为参数和   如果任一字符串出现在另一个字符串中,则返回True False   除此以外。提示:您可能希望使用内置的str操作in

我经历了我在这里找到的所有讨论,同时使用infind进行了尝试,不断更改代码中的内容,但每次我都会运行程序来检查{{1} 'abc'中出现的答案是'efg'

知道怎么解决吗?同样,我需要编写一个函数,而不是简单地使用:

True

我写的代码(我将其添加为显然有些人希望看到它)基本上是这样的:

x='abc'

y='efg'

if x in y:

    # Blah

else:

    # another Blah

3 个答案:

答案 0 :(得分:0)

我得到的印象是你是Python的新手,所以下面就是问题的解决方案,问题如下:)

def isIn(string_1, string_2): #This is the function that returns true/false

    if (string_1 in string_2) or (string_2 in string_1):
        is_in = True
    else:
        is_in = False

    return is_in


if __name__ == "__main__":
    string_1 = input ("String 1 here: ")
    string_2 = input ("string 2 here: ")

    is_in = isIn(string_1, string_2) #Calls function with strings as parameters
    print (is_in) #Prints the evaluation of the function after it has run

您的代码存在的问题是您说if True,但您没有给它任何要检查的内容。 if True本身就是真的。

如果您希望我更详细地解释此代码的工作方式,我很乐意这样做:)

答案 1 :(得分:0)

问题是你完全忽略了函数isIn的返回值,而且你总是得到代码打印True的原因是你正在检查if的条件。 1}}语句是布尔常量True,当然总是True

尝试将代码更改为:

a='abc'
b='efg'
r = isIn(a,b)

if r:
    print "True"
else:
    print "False"

答案 2 :(得分:0)

简单地说:

x=input('Enter string #1: ')  
y=input('Enter string #2: ')  
#can also just define x and y separately in the console and invoke the   
#    function on those values  

def isIn(x,y):  
    if x in y:  
       return True  
    elif y in x:  
        return True 
    else:   
        return 'False'  

print(isIn(x,y)) #invokes and prints the results of the function evaluating   
#the x and y the user inputs; otherwise nothing is returned