在python中大写字母函数

时间:2017-05-20 23:24:13

标签: python

我尝试编写一个带有函数的程序,通过添加一个点来大写表达式中的每个第一个字母。例如,如果我写hello world,结果必须为H.W.

我的节目是:

def initials(Hello World):

    words = input.split(' ')
    initials_words = []
    for word in words:
        title_case_word = word[0].upper() 
        initials_words_words.append(title_case_word)
        output = '. '.join(initials_words)
    return (initials_words)

编译器似乎确实存在nootexit错误,但是当我尝试给出一个例如:print (initials(Hello World)的排序时,编译器不会给我任何结果。

3 个答案:

答案 0 :(得分:1)

这样做:

def initials(input_text):
    return "".join(["%s." % w.upper()[0] for w in input_text.split()])

答案 1 :(得分:1)

我发现了几个问题:

  • 您需要更改功能签名以获取名为input的参数。因为那是你split的变量。注意:input也是内置函数,因此使用不同的变量名称会更好。

  • 然后在循环中使用initial_words_words代替initial_words

  • 您指定了output但是您没有使用它,它应该在循环之外并且也可以返回。

  • 不是问题,但返回时不需要()

所以改变的程序看起来像这样:

def initials(my_input):

    words = my_input.split(' ')
    initials_words = []
    for word in words:
        title_case_word = word[0].upper() 
        initials_words.append(title_case_word + '.')
    output = ''.join(initials_words)  # or ' '.join(initials_words) if you want a seperator
    return output


print(initials('Hello World'))  # H.W.

答案 2 :(得分:0)

尝试在第6行运行代码时发现错误:Sub Test_download_tvsubtitles_net() DownloadFile "http://www.tvsubtitles.net/download-114117.html", ThisWorkbook.Path & "\download-114117.zip" End Sub Sub DownloadFile(sUrl, sPath) Dim aBody With CreateObject("MSXML2.XMLHTTP") .Open "GET", sUrl, False .Send aBody = .responseBody End With With CreateObject("ADODB.Stream") .Type = 1 ' adTypeBinary .Open .Write aBody .SaveToFile sPath, 2 ' adSaveCreateOverWrite .Close End With End Sub

  

NameError:名称'initials_words_words'未定义

修复后,程序运行正常。尝试将其更改为initials_words_words.append(title_case_word)