返回字符串中的第一个单词

时间:2014-11-08 22:01:04

标签: python string

这是我班上提出的问题: 编写并测试一个函数,该函数将名称作为参数并返回名称的首字母。例如," Augusta Ada King"应该返回" A.A.K。&#34 ;; " Frank Lloyd Wright"应该返回" F.L.W。&#34 ;; " Alan Turing"应该返回" A.T。"。您的解决方案应该处理任何长度的名称。

到目前为止,我的代码编写如下:


def make_intitals(name):

    char_length = len(name)
    initial = name[0:1]
    for i in range(char_length):
        if name[i] == '':
            initial_location = name[i+1]
            initial += '.' + initial_location
    return initial.upper()


given_name = input("Enter name: ")

initials = make_intitals(given_name)

print(initials)

我不确定我做错了什么,如果有人能提供帮助,我将不胜感激

4 个答案:

答案 0 :(得分:0)

def getInitials(full_name):

    s = full_name.split(" ");
    initials = [];

    for i in range(0, len(s)-1):
        initials.append(s[i][0])

    return initials

full_name = raw_input("Please enter the name "); # Only works for Python version 3> 
#full_name = input("Please enter a name"); # Works only for older versions like 2.7

res = getInitials(full_name); # Should work fine "Returns P. A. for Peter Aaron Jackson"

这对你有用吗?

答案 1 :(得分:0)

也许更简单的方法是你必须总是选择第一个字符然后迭代,如果出现空格,请使用以下索引:

s = "jon doe test"
l = list(s)
n = ""
n+= s[0]
for e, i in enumerate(l):
    if i == ' ':
    n+= l[e+1]
print n

你可以使用枚举,如果你想使用隐式索引,就像在C风格的循环中一样

答案 2 :(得分:0)

initials = ''
for name in full_name.split(' '):
  initials += name[0] + '.'

答案 3 :(得分:0)

这是我为你写的代码,

def initial(n):
  n=n.split(" ")
  i=0
  while i<len(n):
    print n[i][0]
    i=i+1
  return 

当您运行如下功能时:
    initial("John Doe Smith")

答案将在输出中显示为: Ĵ d 小号