使用 splitlines 和 Split 获取单词的行

Get word's line by using splitlines and Split

我想根据用户输入的文本得到哪一行的单词

这是代码示例:

numLine =0

text = "How do you do? Am i \nsuppose to go somewhere?\nHere is the line i 
        don't know"

splittext= text.splitlines()
for i in splittext:
    numLine += 1
    if 'suppose' in i.split():
        print(str(numLine)+": "+i )

文本插入后得到字行,

for i in splittext:
       numLine += 1

之后,如果它与 splittext

中的 'suppose' 单词匹配,我会再次尝试拆分
        if 'suppose' in i.split():
        print(str(numLine)+": "+i )

打印结果假设为

2: suppose to go somewhere?

但是终端不显示打印。我该如何解决这个问题?

您是指 text2.splitlines() 而不是 text.splitlines() 吗?

这里有一个更 Pythonic 的方法来解决你的问题。

text = "How do you do? Am i \nsuppose to go somewhere?\nHere is the line i don't know"

for index, line in enumerate(text.splitlines()):
    if 'suppose' in line.split():
        print('{}: {}'.format(index + 1, line))

解释:

  • 避免创建额外的变量,例如 splittext 如果您只使用它们一次
  • 当你想遍历一个列表并对计数器做一些事情时使用enumerate()
  • 使用字符串格式而不是串联来很好地打印内容。