用 Python 将每个单词的首字母大写
-
在 Python 中使用
string.title()
方法将每个单词首字母大写 -
在 Python 中使用
string.capwords()
方法大写每个单词 -
在 Python 中使用
string.split()
和string.join()
方法将每个单词大写
本教程将解释在 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?
在上面的例子中可以注意到,这个方法可以处理引号、占有式名词和括号之间的单词。但是在这个方法中,字符串原有的间距会丢失。