用 Python 将每个单词的首字母大写

Muhammad Waiz Khan 2023年1月30日 2021年2月28日
  1. 在 Python 中使用 string.title() 方法将每个单词首字母大写
  2. 在 Python 中使用 string.capwords() 方法大写每个单词
  3. 在 Python 中使用 string.split()string.join() 方法将每个单词大写
用 Python 将每个单词的首字母大写

本教程将解释在 Python 中大写字符串中每个单词的第一个字母的各种方法。如果我们有一个像 hey! what's up? 这样的字符串,我们想把它转换为 Hey! What's Up?。我们可以通过使用一些可用的方法,或者将字符串的每个字分开,将每个字的第一个字母大写,然后再将字符串连接起来。

我们也可能会有像 hey... what's up? 这样的字符串,我们要保持字符串的原始间距。本教程将研究解决这些问题的各种方法。

在 Python 中使用 string.title() 方法将每个单词首字母大写

string.title() 是一个内置的方法,它接受一个字符串作为输入,并返回每个字的第一个字符大写的字符串。string.title() 方法不会改变字符串的原始间距。下面的代码示例演示了如何在 Python 中使用 string.title() 方法将一个单词的每个字母大写。

string = "hey! what's up?"
print(string)
print(string.title())

输出:

Hey! What's up?
Hey! What'S Up?

在上面的例子中可以注意到,string.title() 方法不能很好地与标点符号一起使用,因为它将标点符号后的字母大写。

在 Python 中使用 string.capwords() 方法大写每个单词

string 模块的 string.capwords(string, sep) 将字符串作为第一个参数,将 sep 作为第二个参数,并返回带有每个单词大写的第一个字符的字符串,并以 sep 参数为基础进行分隔。如果没有给 sep 参数传值或设置为 None,则将使用空格作为分隔符,一个空格代替一个或多个空格。

下面的示例代码显示了如何使用 string.capwords() 方法来大写字符串中的每个单词。

import string

mystring = "hey!   what's up?"
print(mystring)
print(string.capwords(mystring))

输出:

hey!   what's up?
Hey! What's Up?

这个方法的问题是,它要么会漏掉像'hello'这样的词,要么如果我们把'作为 sep 参数,它就会把 what's 大写成 what'S,如下例代码所示。

import string

mystring = "'hello'   what's up?"
print(mystring)
print(string.capwords(mystring))
print(string.capwords(mystring,sep="'"))

输出:

'hello'   what's up?
'hello' What's Up?
'Hello'   what'S up?

在 Python 中使用 string.split()string.join() 方法将每个单词大写

string.split(separator,..) 方法使用提供的 separator 参数值作为分隔符,将字符串转换为一个列表。string.join(iterable) 方法将 iterable 对象作为输入,并使用提供的字符串参数作为词的分隔符将其转换为字符串。

下面的示例代码演示了如何在 Python 中使用 string.split()string.join() 方法将每个单词的第一个字母大写。

import re

s = "'hello'   what's up?"
print(s)
slist = []
for word in s.split():
    if word[0] in ("'",'"',"("):
        word = word[0] + word[1].upper() + word[2:]
        slist.append(word)
    else:
        word = word[0].upper() + word[1:]
        slist.append(word)
    new_string = " ".join(slist) 
print(new_string)

输出:

'hello'   what's up?
'Hello' What's Up?

在上面的例子中可以注意到,这个方法可以处理引号、占有式名词和括号之间的单词。但是在这个方法中,字符串原有的间距会丢失。

相关文章 - Python String