我目前正在阅读和完成John Guttag的“使用Python进行计算和编程简介”中的每一个练习。我无法解决的一个特殊问题:
编写一个函数
isIn
,接受两个字符串作为参数和 如果任一字符串出现在另一个字符串中,则返回True
False
除此以外。提示:您可能希望使用内置的str操作in
。
我经历了我在这里找到的所有讨论,同时使用in
和find
进行了尝试,不断更改代码中的内容,但每次我都会运行程序来检查{{1} 'abc'
中出现的答案是'efg'
。
知道怎么解决吗?同样,我需要编写一个函数,而不是简单地使用:
True
我写的代码(我将其添加为显然有些人希望看到它)基本上是这样的:
x='abc'
y='efg'
if x in y:
# Blah
else:
# another Blah
答案 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