python中的大写字母函数

2024-05-16 05:27:22 发布

您现在位置: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)

编译器似乎没有发现任何错误,但是当我尝试给出一个表达式,例如:print (initials(Hello World)时,编译器没有给出任何结果。你知道吗


Tags: 函数程序helloworld编译器title表达式字母
3条回答

我发现了几个问题:

  • 您需要更改函数签名以获取名为input的参数。因为这就是你所需要的变量。注意: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.

我在第6行运行代码时看到一个错误:initials_words_words.append(title_case_word)。你知道吗

NameError: name 'initials_words_words' is not defined

修复后,程序运行良好。试着把它改成initials_words.append(title_case_word)

这样就可以了:

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

相关问题 更多 >