【问题标题】:In python 3.5, how do I compare a string variable with part of another string? [duplicate]在 python 3.5 中,如何将字符串变量与另一个字符串的一部分进行比较? [复制]
【发布时间】:2016-09-08 14:27:48
【问题描述】:

我目前正在学习 Python,我有一个问题我也找不到答案,目前我正在尝试获取用户提供的字符串变量并将其与另一个字符串的一部分进行比较。我想要这样的东西:

程序:给定的句子是“我喜欢化学”,输入一个单词 给出的句子。

用户:喜欢

程序:你的话就在句子里。

我似乎只能使用if 函数和== 来编写程序,但这似乎只有在我键入程序给出的完整句子时才认识到这两个字符串是相似的。

从我已将程序更改为的一些答案中,但似乎有一个我找不到的错误。

sentence=("I like chemistry")
print("The given sentence is: ",sentence)
word=input("Give a word in the sentence: ").upper
while word not in sentence:
    word=input("Give a valid word in the sentence: ")
if word in sentence:
    print("valid")

【问题讨论】:

  • 是否需要是一个单词,或者任何子串都可以匹配?
  • 你想测试这个词是否在这个句子中。你试过if word in sentence吗?
  • 任何单词,如用户可以为给定的句子输入“like”,程序会告诉你它是匹配的。
  • “我似乎只能制作一个程序使用”你的意思是这是你唯一能想到的,还是赋值(?)仅限于使用这些操作?
  • 编程的一部分是理解问题的所有约束。例如在这个例子中,搜索“lick”是否也应该匹配“clicked”?

标签: python python-3.5


【解决方案1】:

您可以将insplit 一起使用:

>>> s = "I like chemistry"
>>> words = s.split()
>>> "like" in words
True
>>> "hate" in words
False

这种方法与对非拆分字符串使用in 的区别如下:

>>> "mist" in s
True
>>> "mist" in words
False

如果您想要任意子字符串,则只需使用 w in s,但如果您想要空格分隔的单词,则使用 w in words

【讨论】:

    【解决方案2】:
    if word in sentence:
    

    欢迎来到python的奇妙世界。

    【讨论】:

      【解决方案3】:

      在 Python 中,您使用 if substring in string: ...

      例子:

      mystring = "I like chemistry"
      if "like" in mystring:
          print("Word is in sentence")
      else:
          print("Word is not in sentence")
      

      希望这会有所帮助!

      【讨论】:

        【解决方案4】:

        与其将其视为查找子字符串,不如将其视为检查成员资格。 Python 中的所有序列类型都为此目的公开了相同的接口。假设s 是一个序列,即strlisttuple 并查看m 是否在s 中,

        >>> m in s # => bool :: True | False
        

        同样的in 运算符也适用于dict 键和set,尽管它们不是序列。

        【讨论】:

          猜你喜欢
          • 2017-06-30
          • 1970-01-01
          • 2013-01-20
          • 2017-10-25
          • 1970-01-01
          • 2012-04-06
          • 1970-01-01
          • 2020-09-03
          • 1970-01-01
          相关资源
          最近更新 更多