Python 的字符串類型 (str) 標配了用於操作大寫和小寫字母的便捷方法。您可以在大寫和小寫之間進行轉換並確定大小寫。
此處提供以下信息。
- 大寫字母和小寫字母之間的轉換
- 基本用法
- 處理全角和半角字符
str.upper()
將所有字母轉換為大寫str.lower()
將所有字母轉換為小寫str.capitalize()
將第一個字母轉換為大寫,將其餘字母轉換為小寫。str.title()
將單詞的第一個字母轉換為大寫,將其餘字母轉換為小寫。str.swapcase()
將大寫字母轉換為小寫,將小寫字母轉換為大寫。
- 確定大寫和小寫字母
str.isupper()
: 判斷是否所有字母都是大寫str.islower()
: 判斷是否所有字符都是小寫。str.istitle()
: 確定是否是標題案例。
- 以不區分大小寫的方式比較字符串
大寫字母和小寫字母之間的轉換
基本用法
首先,我將解釋基本用法。我們將使用 upper() 方法將所有字母大寫作為示例,但同樣適用於其他方法。
為了方便起見,我們寫了“轉換”,但是在Python中,字符串類型(str)對像是不可更新的,所以原始字符串(示例中的s_org)本身並沒有改變。
s_org = 'pYThon proGramminG laNguAge' print(s_org.upper()) # PYTHON PROGRAMMING LANGUAGE print(s_org) # pYThon proGramminG laNguAge
如果您想稍後使用轉換後的字符串,您可以將其存儲在一個新變量中,如下所示。
s_new = s_org.upper() print(s_new) # PYTHON PROGRAMMING LANGUAGE
也可以覆蓋原始變量。
s_org = s_org.upper() print(s_org) # PYTHON PROGRAMMING LANGUAGE
處理全角和半角字符
如果字符區分大小寫,例如字母表,它將被轉換為單字節和雙字節字符。
不區分大小寫的字符,如數字和漢字,保持不變。該示例適用於 upper(),但同樣適用於其他方法。
s_org = 'Pyhon Python 123' print(s_org.upper()) # PYHON PYTHON 123
str.upper():將所有字母轉換為大寫
s_org = 'pYThon proGramminG laNguAge' print(s_org.upper()) # PYTHON PROGRAMMING LANGUAGE
str.lower():將所有字符轉換為小寫
s_org = 'pYThon proGramminG laNguAge' print(s_org.lower()) # python programming language
str.capitalize(): 將第一個字母轉換為大寫,其餘為小寫
s_org = 'pYThon proGramminG laNguAge' print(s_org.capitalize()) # Python programming language
str.title():將單詞首字母大寫,其餘字母小寫
轉換為所謂的產權案例。
s_org = 'pYThon proGramminG laNguAge' print(s_org.title()) # Python Programming Language
str.swapcase(): 大寫轉小寫,小寫轉大寫
交換大小寫字母。
s_org = 'pYThon proGramminG laNguAge' print(s_org.swapcase()) # PytHON PROgRAMMINg LAnGUaGE
確定大寫和小寫字母
在以下示例中,方法是直接從字符串文字(例如 ‘python’)調用的,但與前面的示例一樣存儲在變量中時也是如此。
str.isupper():判斷是否所有字母都是大寫
如果 isupper() 包含至少一個區分大小寫的字符並且所有字符都是大寫,則返回 true,否則返回 false。
print('PYTHON'.isupper()) # True print('Python'.isupper()) # False
如果字符區分大小寫,即使是雙字節字符也會被判斷。
print('PYTHON'.isupper()) # True
如果包括單個區分大小寫的字符,則忽略不區分大小寫的字符,但如果不包含區分大小寫的字符(所有字符都不區分大小寫),則判定為假。
print('PYTHON 123'.isupper()) # True print('123'.isupper()) # False
str.islower():判斷是否所有字符都是小寫
如果 islower() 包含至少一個區分大小寫的字符並且所有字符都是小寫的,則返回 true,否則返回 false。
print('python'.islower()) # True print('Python'.islower()) # False
如果字符區分大小寫,即使是雙字節字符也會被判斷。
print('python'.islower()) # True
如果包括單個區分大小寫的字符,則忽略不區分大小寫的字符,但如果不包含區分大小寫的字符(所有字符都不區分大小寫),則判定為假。
print('python 123'.islower()) # True print('123'.islower()) # False
str.istitle():判斷案例是否為標題案例。
如果字符串是標題大小寫(單詞的第一個字母大寫,其餘字母小寫),則 istitle() 返回 true,否則返回 false。
print('Python Programming Language'.istitle()) # True print('PYTHON Programming Language'.istitle()) # False
如果它包含不區分大小寫的字符,如果不區分大小寫的字符前面有一個小寫字母,則為假。
print('★Python Programming Language'.istitle()) # True print('Python★ Programming Language'.istitle()) # True print('Py★thon Programming Language'.istitle()) # False
請注意,像上面的示例那樣的字符串並不多,但在序數和其他情況下包含數字是現實的。
print('The 1st Team'.istitle()) # False print('The 1St Team'.istitle()) # True
如果不包含區分大小寫的字符(所有字符都不區分大小寫),則為 false。
print('123'.istitle()) # False
以不區分大小寫的方式比較字符串
比較字符串時,不同的大寫和小寫字母不被視為等效。
s1 = 'python' s2 = 'PYTHON' print(s1 == s2) # False
如果要進行不區分大小寫的比較,可以使用 upper() 或 lower() 將兩者轉換並進行比較。
print(s1.upper() == s2.upper()) # True print(s1.lower() == s2.lower()) # True print(s1.capitalize() == s2.capitalize()) # True print(s1.title() == s2.title()) # True