Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中的大写字母函数_Python - Fatal编程技术网

python中的大写字母函数

python中的大写字母函数,python,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.a

我试着写一个程序,用一个函数,在表达式中的第一个字母加上一个点,使其大写。例如,如果我写
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)
编译器没有给我任何结果。

我在第6行尝试运行代码时看到一个错误:
initials\u words\u words.append(title\u case\u word)

名称错误:未定义名称“缩写词”


修复后,程序运行正常。尝试将其更改为
首字母缩写词。追加(title\u case\u word)
我在第6行尝试运行代码时看到一个错误:
首字母缩写词。追加(title\u case\u word)

名称错误:未定义名称“缩写词”

修复后,程序运行正常。尝试将其更改为
首字母缩写词。\u单词。追加(title\u case\u单词)
这将完成以下操作:

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

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

我发现了几个问题:

  • 您需要更改函数签名以获取名为
    input
    的参数。因为这是您拆分的
    变量。注意:
    input
    也是一个内置函数,因此使用不同的变量名会更好

  • 然后在循环中使用
    initial\u words\u words
    而不是
    initial\u words

  • 分配
    输出
    ,但不使用它,它可能在循环之外,也应该返回

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

因此,更改后的程序将如下所示:

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.

我发现了几个问题:

  • 您需要更改函数签名以获取名为
    input
    的参数。因为这是您拆分的
    变量。注意:
    input
    也是一个内置函数,因此使用不同的变量名会更好

  • 然后在循环中使用
    initial\u words\u words
    而不是
    initial\u words

  • 分配
    输出
    ,但不使用它,它可能在循环之外,也应该返回

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

因此,更改后的程序将如下所示:

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.

您可以使用
w[0].upper()
,因为您不需要将整个字符串大写,只需要第一个字母。
str.format
%
-格式要好一点(但这主要取决于您的偏好)。您可以使用
w[0].upper()
因为您不需要整个字符串的大写字母,只需要第一个字母。
str.format
也比
%
格式好一点(但这主要取决于您的偏好)。