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