resp = raw_input("What is your favorite fruit?\n")
if "I like" in resp:
print "%s" - "I like" + " is a delicious fruit." % resp
else:
print "Bubbles and beans."
好的我知道这段代码不起作用,我知道为什么。你不能像数字一样相互减去字符串。
但有没有办法打破一个字符串,只使用部分响应? 而“有一种方式”我的意思是“如何”,因为在编程中一切皆有可能。 :d
我正试图从头开始编写我的第一个聊天机器人。
答案 0 :(得分:5)
一种选择是简单地用空字符串替换要删除的部分:
resp = raw_input("What is your favorite fruit?\n")
if "I like" in resp:
print "%s is a delicious fruit." % (resp.replace("I like ", ""))
else:
print "Bubbles and beans."
如果您想查看更高级的模式匹配,以通过灵活的模式获取更多特定的字符串部分,您可能需要查看regular expressions。
答案 1 :(得分:0)
# python
"I like turtles".replace("I like ","")
'turtles'
答案 2 :(得分:0)
以下是使用正则表达式的方法:
In [1]: import re
In [2]: pat = r'(I like )*(\w+)( is a delicious fruit)*'
In [3]: print re.match(pat, 'I like apples').groups()[1]
apples
In [4]: print re.match(pat, 'apple is a delicious fruit').groups()[1]
apple
答案 3 :(得分:-1)
你能剥开“我喜欢”吗?
resp.strip("I like")
但是要注意区分大小写。