用 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?
在上面的例子中可以注意到,這個方法可以處理引號、佔有式名詞和括號之間的單詞。但是在這個方法中,字串原有的間距會丟失。