使用 python 中的查找

using find in python

python 的新手,我的作业要求用户输入,然后查找并打印句子中每个单词的第一个字母

到目前为止我只有

phrase = raw_input("Please enter a sentence of 3 or 4 words: ")

^ 我只有这些。所以说用户输入短语 "hey how are you" 我应该找到并打印每个单词的第一个字母,这样它就会打印 "hhay"

如果它是程序员键入的字符串,但用户输入数据时不知道,我知道如何索引。

以下是您可以采取的步骤的粗略概述。由于这是一项作业,我将把它们实际组装成一个工作程序由你决定。

  1. raw_input 将生成一个字符串。
  2. 如果你有两个字符串,一个在foo中,一个在bar中,那么你可以将string.split调用为foo.split(bar),结果将是由分隔符 bar 拆分 foo 的内容得到的字符串列表。例如,'a b c'.split(' ') == ['a', 'b', 'c'].
  3. 您可以用方括号对字符串进行切片以从中检索特定字符,从最左边的位置从零开始计数。例如,'abcd'[0] == 'a'.
  4. 如果您有一个字符串 foo 和一个字符串列表 bar,那么您可以将 string.join 调用为 foo.join(bar) 以生成单个字符串的元素foobar 粘在一起。例如,'x'.join(['a', 'b', 'c']) == 'axbxc'.
  5. 您可以print构造输出。

这当然只是您可以采用的众多方法中的一种。

这完成了 Ming 在一行中所说的所有内容。 看了他的解释就可以很好的理解这段代码了。

phrase = raw_input("Please enter a sentence of 3 or 4 words: ")    
output = ''.join([x[0] for x in phrase.split()])    
print output

与评论相关的更新(仅考虑前 3 个词):

output = ''.join([x[0] for x in phrase.split()])[:3]

忽略最后一个词(总词数无关紧要)

output = ''.join([x[0] for x in phrase.split()])[:-1]

回答你的问题"For the next one I have to join the first letters of only the first 3 words and ignore the 4th word. How do I do that?"

output = ''.join([x[0] for x in phrase.split()[0:3]])

如果它是所有单词的第一个字符但最后一个字符则使用:

output = ''.join([x[0] for x in phrase.split()[0:len(phrase.split()) - 1]])