首頁 > 軟體

Python中String模組範例詳解

2022-12-25 14:01:26

Python中String模組詳解

一、 字串常數

String庫中的內建的所有常數:

原始碼中的概括:

whitespace -- a string containing all ASCII whitespace
ascii_lowercase -- a string containing all ASCII lowercase letters
ascii_uppercase -- a string containing all ASCII uppercase letters
ascii_letters -- a string containing all ASCII letters
digits -- a string containing all ASCII decimal digits
hexdigits -- a string containing all ASCII hexadecimal digits
octdigits -- a string containing all ASCII octal digits
punctuation -- a string containing all ASCII punctuation characters
printable -- a string containing all ASCII characters considered printable

範例:

# -*- coding: utf-8 -*-
"""
Created on Sun Dec 18 18:58:35 2022

@author: Steve Anthony
"""
import string
print(string.whitespace)  # 包含所有的空格
print(string.ascii_lowercase)  # 包含所有的小寫字母
print(string.ascii_uppercase)  # 包含所有的大寫字母
print(string.ascii_letters)  # 包含ASCII中的所有字母
print(string.digits)  # 包含所有的數位字串
print(string.hexdigits)  # 包含所有的十六進位制字元字串
print(string.octdigits)  # 包含所有的八進位制字元字串
print(string.punctuation)  # 包含所有的標點符號字串
print(string.printable)  # 包含所有可列印的ASCII字元字串

二、 類

1、 格式化

1.1 介紹

String模組中,有一個Formatter類,其可以對字串進行格式化。

該類中有一個format()方法,和str.format()方法使用方式類似,同時該類的主要作用就是使用format()方法,對字串進行格式化輸出。

1.2 簡單應用

print('{0}, {1}, {2}'.format('a', 'b', 'c'))
print('{}, {}, {}'.format('a', 'b', 'c'))  # 3.1+ only
print('{2}, {1}, {0}'.format('a', 'b', 'c'))  
print('Coordinates: {latitude}, {longitude}'.format(latitude='37.24N', longitude='-115.81W'))

同時,也可以結合元組或者字典的解包來使用。

1.3 格式化輸出

>>> '{:<30}'.format('left aligned')  # 向右對齊,保留30個字元,如果字元不夠使用空格填充
'left aligned                  '
>>> '{:>30}'.format('right aligned')  # 向左對齊,保留30個字元,如果字元不夠使用空格填充
'                 right aligned'
>>> '{:^30}'.format('centered')  # 居中對齊,保留30個字元,如果字元不夠使用空格填充
'           centered           '
>>> '{:*^30}'.format('centered')  # use '*' as a fill char
'***********centered***********'


>>> '{:+f}; {:+f}'.format(3.14, -3.14)  # show it always
'+3.140000; -3.140000'
>>> '{: f}; {: f}'.format(3.14, -3.14)  # show a space for positive numbers
' 3.140000; -3.140000'
>>> '{:-f}; {:-f}'.format(3.14, -3.14)  # show only the minus -- same as '{:f}; {:f}'
'3.140000; -3.140000'

>>> # format also supports binary numbers
>>> "int: {0:d};  hex: {0:x};  oct: {0:o};  bin: {0:b}".format(42)
'int: 42;  hex: 2a;  oct: 52;  bin: 101010'
>>> # with 0x, 0o, or 0b as prefix:
>>> "int: {0:d};  hex: {0:#x};  oct: {0:#o};  bin: {0:#b}".format(42)
'int: 42;  hex: 0x2a;  oct: 0o52;  bin: 0b101010'
>>> 'Correct answers: {:.2%}'.format(19/22)  # 保留兩位小數
'Correct answers: 86.36%'

還可以用於對時間等特殊字串的格式化

import datetime
d = datetime.datetime(2010, 7, 4, 12, 15, 58)
print('{:%Y-%m-%d %H:%M:%S}'.format(d))

2、 模板化

模板字串提供了更簡單的字串替換。因為在該上下文中,更簡單的語法和功能使其比 Python 中的其他內建字串格式設施更容易翻譯。

模板字串支援基於$的替換,使用以下規則:

  • 使用$$進行跳脫,其代表$本身
  • $Identity 命名一個替換預留位置,該預留位置與對映關鍵字“ Identity”匹配。預設情況下,“識別符號”僅限於以下劃線或 ASCII 字母開頭的任何不區分大小寫的 ASCII 字母數位字串(包括下劃線)。$字元之後的第一個非識別符號字元終止此預留位置規範
  • ${identifier} 等價於 $identifier

使用範例:

# -*- coding: utf-8 -*-
"""
Created on Sun Dec 18 18:58:35 2022

@author: Steve Anthony
"""
from string import Template

s = Template('$who的年齡為:${age}')
print(s.safe_substitute({"who": "李華", "age": 13}))  # safe_*這個函數如果沒有給字串裡面的所有變數賦值不會報錯
print(s.safe_substitute(**{"who": "李華"}))
print(s.substitute(**{"who": "李華", "age": 13}))  # 但是這個函數,必須要給字串裡面所有定義的變數都賦值,否則會報錯
print(s.substitute({"who": "李華"}))

三、 函數

對於String的常用方法,可以去Python基礎語法裡面學習

同時,有一個比較特殊的函數capwords(s, sep=" "),可以學習學習

作用,根據分隔符,將字串分成幾塊,並且將每一塊字串的第一個字母轉換為大寫字母(如果不是字元則不改變),其餘字母轉換為小寫字母,最後使用分隔符拼接回去。

使用範例:

# -*- coding: utf-8 -*-
"""
Created on Sun Dec 18 18:58:35 2022

@author: Steve Anthony
"""
import string

a = string.capwords("*hello python! my nAmE iS")
print(a)

到此這篇關於Python中String模組的文章就介紹到這了,更多相關Python中String模組內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com