【问题标题】:endswith() function of a string gives contradictory results [duplicate]字符串的endswith()函数给出了矛盾的结果[重复]
【发布时间】:2019-09-03 03:21:06
【问题描述】:

当我注意到四个简单的一行语句的四个结果时,我只是在 Python 控制台中闲逛:

1. "x".endswith("") True

2. "x".endswith("x") True

然后,当他们给我这些结果时,我尝试从语句中去除空格:

3. "x".strip().endswith("") True

4. "x".strip().endswith("x") True

怎么可能所有结果都是True?字符串函数如何返回True 以同时以"x""" 结尾?这不是矛盾还是我在这里遗漏了什么?

Windows 10 上 PyCharm 上的 Python 2.7。

【问题讨论】:

  • 这个问题似乎相关:stackoverflow.com/questions/27603885/…
  • "字符串函数如何返回 True 以同时以 "x""" 结尾?"这样看。 "Hello""Hello""ello""llo""lo""o""" 结尾。没有什么矛盾的。
  • 我得到了答案。 +1 @Amadan 的 cpmment。准确的解释

标签: python


【解决方案1】:

如果您想检查字符串是否以空格结尾,请尝试"x "

例如,"x ".endswith(" ") 返回True,但"x ".strip().endswith(" ") 返回False

"" 是一个空字符,您尝试执行的操作将不起作用。空格字符如下所示:" "

【讨论】:

    【解决方案2】:

    .strip() 函数会删除调用它的字符串开头和结尾的所有空格。您的字符串 "x" 周围没有空格,因此它不会发生任何变化(您可以通过运行 "x" == "x".strip() 来检查这一点。

    您还要检查它是否以空字符串结尾,Python 中的每个字符串都会这样做!

    在您的字符串中添加一些空格(例如"x "),并在您的endswith 调用中使用一个空格字符(例如"x . ".endswith(" ")),以便更好地了解strip() 函数的工作原理。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-25
      • 2023-03-26
      • 2019-03-18
      • 1970-01-01
      • 1970-01-01
      • 2019-04-01
      • 1970-01-01
      相关资源
      最近更新 更多