【问题标题】:Print the string, if string in the line ends with specific characters打印字符串,如果行中的字符串以特定字符结尾
【发布时间】:2016-10-02 19:32:22
【问题描述】:

如何打印一行中以 'je' 结尾的每个字符串

例如:

for line in sys.stdin:
    for string in line:
        if string ends with 'je':
            print string

且仅当字符串以 '....je' 结尾时,不包括 'je'。如果字符串以 '....je?' 结尾或'....je.'消除 '? , . ' .然后它应该打印字符串。帮助将不胜感激。

【问题讨论】:

  • 什么是“一行中的每个字符串”?
  • Dat huisje daar。 Dat boompje daar。 Een reisje hier。打印:huisje/boompje/reisje
  • 那么,一行中的每个单词?
  • 是的,我已经让它工作了,但它也包括“je”

标签: python string file character line


【解决方案1】:

假设您的字符串名称不允许使用 '?,.'无论如何,它应该可以工作。

for line in sys.stdin:
    for string in line:
        string = string.strip('.,?')
        if string.endswith('je'):
            print(string)

【讨论】:

    【解决方案2】:

    您的代码中有两个问题。 for string in line: 将遍历每个字符,而不是遍历每个单词。顺便说一句,你不应该将你的变量命名为string。 for word in line.split(): 会如你所愿。

    另外,if string ends with 'je': 应该是 if word.endswith('je'):。如果您不想匹配确切的单词“je”,可以将其更改为if word.endswith('je') and word != "je":。

    最终代码,包括删除!和?:

    f = open("a.txt", "r")
    
    for line in f:
        for word in line.split():
            word = word.rstrip("!?")
            if word.endswith('je') and word != "je":
                print(word)
    

    请注意,如果一个单词以多个? 或! 结尾,它们都会被删除。

    【讨论】:

    • 有没有办法删除'je'?我希望它只有一个'......je'而不是'je'
    • 我已经编辑了我的代码。它现在还会从字符串中删除 ? 和 !。
    猜你喜欢
    • 1970-01-01
    • 2023-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多