(7)基本對象類型--字符串轉(zhuǎn)義、格式化、多行輸出(P3)

1. 基本對象類型(python里面一切皆是對象)

(接前文)

1.4.5 制表符和換行符

????????添加制表符,可使用字符組合\t;中添加換行符,可使用字符組合\n。示例:

????????>>>print("Languages:\n\tPython\n\tJava\n\tJavaScript")

????????輸出:

????????Languages:

????????Python

????????Java

????????JavaScript


1.4.6 常用轉(zhuǎn)義符

????????\(在行尾時) 續(xù)行符

????????\\ 反斜杠符號

????????\' 單引號

????????\" 雙引號

????????\n 換行

????????\t 橫向制表符

????????\r 回車


1.4.7 字符串中包含引號處理

????????用單引號包含字符串時,若字符串內(nèi)容中含有單引號,就會出現(xiàn)語法錯誤??梢愿臑殡p引號包含字符串,反之亦然。示例:message = "One of Python's strengths is its diverse community."

最好的方法是用轉(zhuǎn)義符,如message = 'One of Python\'s strengths is its diverse community.'


1.4.8 字符串格式化

1.4.8.1 傳統(tǒng)字符串格式化

????? 符號 描述

? ? ????? %c 格式化字符及其ASCII碼

????? ? ? %s 格式化字符串

? ? ????? %d 格式化整數(shù)

????? ? ? %u 格式化無符號整型

? ? ????? %o 格式化無符號八進(jìn)制數(shù)

????? ? ? %x 格式化無符號十六進(jìn)制數(shù)

? ? ????? %X 格式化無符號十六進(jìn)制數(shù)(大寫)

????? ? ? %f ? ? 格式化浮點數(shù)字,可指定小數(shù)點后的精度

? ? ????? %e 用科學(xué)計數(shù)法格式化浮點數(shù)

????? ? ? %E 作用同%e,用科學(xué)計數(shù)法格式化浮點數(shù)

? ? ????? %g %f和%e的簡寫

????? ? ? %G %f 和 %E 的簡寫

????? ? ? %p 用十六進(jìn)制數(shù)格式化變量的地址

????????示例(Python 3.0+):

????????????print ("我叫 %s 今年 %d 歲!" % ('小明', 10))

????????????輸出結(jié)果:我叫 小明 今年 10 歲!

????? ????符號 ? ? 功能

????????* 定義寬度或者小數(shù)點精度

????????- 用做左對齊

????????+ 在正數(shù)前面顯示加號( + )

????????<sp> 在正數(shù)前面顯示空格

????????# 在八進(jìn)制數(shù)前面顯示零('0'),在十六進(jìn)制前面顯示'0x'或者'0X'(取決于用的是'x'還是'X')

????????0 顯示的數(shù)字前面填充'0'而不是默認(rèn)的空格

????????% '%%'輸出一個單一的'%'

????????(var) 映射變量(字典參數(shù))

????????m.n. m 是顯示的最小總寬度,n 是小數(shù)點后的位數(shù)(如果可用的話)


1.4.8.2 str.format(),增強字符串格式化

????????Python2.6 開始,新增了一種格式化字符串的函數(shù) str.format(),它增強了字符串格式化的功能。可替代上面的格式化方式。


1.4.8.3 f-string字面量格式化字符串

????????f-string 是 python3.6 之后版本添加的格式化字符串語法

????????f-string 格式化字符串以 f 開頭,后面跟著字符串,字符串中的表達(dá)式用大括號 {} 包起來,它會將變量或表達(dá)式計算后的值替換進(jìn)去。

????????示例:

????????>>> name = 'Runoob'

????????>>> 'Hello %s' % name 傳統(tǒng)格式化,輸出'Hello Runoob'

????????>>> f'Hello {name}'? f’格式化,? 輸出 'Hello Runoob'

????????>>> w = {'name': 'connie', 'age': 19}

????????>>> print(f'My name is {w["name"]},age is {w["age"]}')

????????輸出 My name is connie,age is 19。用這種方式,不用再去判斷使用 %s,還是 %d。


1.4.8.4 使用= 符號來拼接運算表達(dá)式與結(jié)果

????????Python 3.8 的版本中可以使用 = 符號來拼接運算表達(dá)式與結(jié)果

????????示例:

????????>>> x = 1

????????>>> print(f'{x+1=}')? # Python 3.8

????????'x+1=2'


1.4.9 多行字符串

? ????使用一對三個單引號進(jìn)行定義。多行字符串可以使用制表符,三引號讓程序員從引號和特殊字符串的泥潭里面解脫出來。一個典型的用例是,當(dāng)你需要一塊HTML或者SQL時,這時用字符串組合,特殊字符串轉(zhuǎn)義將會非常的繁瑣。

????????示例:

????????>>> para_str = """這是一個多行字符串的實例

????????多行字符串可以使用制表符

????????TAB ( \t )。

????????也可以使用換行符 [ \n ]。

????????"""

????????>>> para_str

????????'這是一個多行字符串的實例\n多行字符串可以使用制表符\nTAB ( \t )。\n也可以使用換行符 [ \n ]。\n'

? ? ? ? ?多行字符串可以使用制表符

????????三引號讓程序員從引號和特殊字符串的泥潭里面解脫出來,自始至終保持一小塊字符串的格式是所謂的WYSIWYG(所見即所得)格式的。

????????一個典型的用例是,當(dāng)你需要一塊HTML或者SQL時,這時用字符串組合,特殊字符串轉(zhuǎn)義將會非常的繁瑣。

????????示例:

????????????>>>errHTML = '''

????????<HTML><HEAD><TITLE>

????????Friends CGI Demo</TITLE></HEAD>

????????<BODY><H3>ERROR</H3>

????????<B>%s</B><P>

????????<FORM><INPUT TYPE=button VALUE=Back

????????ONCLICK="window.history.back()"></FORM>

????????</BODY></HTML>

????????'''

????????>>>cursor.execute('''

????????CREATE TABLE users (?

????????login VARCHAR(8),

????????uid INTEGER,

????????prid INTEGER)

????????''')


1.4.10 原始字符串

????????在字符串前加’r’,定義原始字符串,字符串中的內(nèi)容都是原始含義,沒有轉(zhuǎn)義功能。

????????>>>dos = r"c:\news"

????????>>>print(dos) #輸出c:\news

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容