1. 程式人生 > >第015講:字串:格式化

第015講:字串:格式化

目錄

測試題

0. 根據說明填寫相應的字串格式化符號

1. 請問以下這行程式碼會列印什麼內容?

2. 以下程式碼中,a, b, c是什麼引數?

3. 以下程式碼中,{0}, {1}, {2}是什麼引數?

4. 如果想要顯示Pi = 3.14,format前邊的字串應該怎麼填寫呢?

動動手

0. 編寫一個進位制轉換程式,程式演示如下(提示,十進位制轉換二進位制可以用bin()這個BIF):

1. 請寫下這一節課你學習到的內容:格式不限,回憶並複述是加強記憶的好方式!


測試題

0. 根據說明填寫相應的字串格式化符號

1. 請問以下這行程式碼會列印什麼內容?

>>> "{{1}}".format("不列印", "列印")
>>> "{{1}}".format("不列印", "列印")
'{1}'

2. 以下程式碼中,a, b, c是什麼引數?

>>> "{a} love {b}.{c}".format(a="I", b="FishC", c="com")
'I love FishC.com'

關鍵字引數

3. 以下程式碼中,{0}, {1}, {2}是什麼引數?

>>> "{0} love {1}.{2}".format("I", "FishC", "com")
'I love FishC.com'

位置引數

4. 如果想要顯示Pi = 3.14,format前邊的字串應該怎麼填寫呢?

''.format('Pi = ', 3.1415)
>>> '{0}{1:.2f}'.format('Pi = ', 3.1415)
'Pi = 3.14'

動動手

0. 編寫一個進位制轉換程式,程式演示如下(提示,十進位制轉換二進位制可以用bin()這個BIF):

q = True
while q:
    num = input('請輸入一個整數(輸入Q結束程式):')
    if num != 'Q':
        num = int(num)
        print('十進位制 -> 十六進位制 : %d -> 0x%x' % (num, num))
        print('十進位制 -> 八進位制 : %d -> 0o%o' % (num, num))
        print('十進位制 -> 二進位制 : %d -> ' % num, bin(num))
    else:
        q = False

1. 請寫下這一節課你學習到的內容:格式不限,回憶並複述是加強記憶的好方式!

(1)format()函式用法

使用位置引數:

>>> "{0} love {1}. {2}".format("I", "FishC", "com")
           'I love FishC. com'

使用關鍵字引數:

>>> "{a} love {b}. {c}".format(a="I", b="FishC", c="com")
           'I love FishC. com'

結合位置引數和關鍵字引數:

在這種情況下,位置引數必須在關鍵字引數之前,如:

>>> "{0} love {b}. {c}".format("I", b="FishC", c="com")
           'I love FishC. com'

如果位置引數之前出現了關鍵字引數,就會報錯。如:

>>> "{a} love {0}. {c}".format(a="I", "FishC", c="com")
            SyntaxError: positional argument follows keyword argument

format()用於保留幾位有效數字:

>>> '{0:.1f}'.format(27.678)
            '27.7'

等價於

>>> '%.1f' %27.555
           '27.6'

(2)字串格式化符號及其含義

符號

說明

%c

格式化字元及其 ASCII 碼

%s

格式化字串

%d

格式化整數

%o

格式化無符號八進位制數

%x

格式化無符號十六進位制數

%X

格式化無符號十六進位制數(大寫)

%f

格式化浮點數字,可指定小數點後的精度

%e

用科學計數法格式化浮點數

%E

作用同 %e,用科學計數法格式化浮點數

%g

根據值的大小決定使用 %f 或 %e

%G

作用同 %g,根據值的大小決定使用 %f 或者 %E

(3)格式化操作符輔助命令

符號

說明

m.n

m 是顯示的最小總寬度(如果整個輸出的長度長度小於m,預設在左邊補空格),n 是小數點後的位數

-

用於左對齊

+

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

#

在八進位制數前面顯示 '0o',在十六進位制數前面顯示 '0x' 或 '0X'

0

顯示的數字前面填充 '0' 取代空格

(4)字串轉義字元

符號

說明

\'

單引號

\"

雙引號

\a

發出系統響鈴聲

\b

退格符

\n

換行符

\t

橫向製表符(TAB)

\v

縱向製表符

\r

回車符

\f

換頁符

\o

八進位制數代表的字元

\x

十六進位制數代表的字元

\0

表示一個空字元

\\

反斜槓