用 Python 將每個單詞的首字母大寫

Muhammad Waiz Khan 2023年1月30日
  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