在python中操作字符串 - 专注于用户输入的一部分

时间:2010-07-17 00:41:01

标签: python

    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

我正试图从头开始编写我的第一个聊天机器人。

4 个答案:

答案 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")
但是要注意区分大小写。