print() 函式是Python語言最常用的輸出函式,可以將數值、字串…等資料,以指定的格式在螢幕上顯示出來。其常用的語法如下:

print(values %(引數串列), sep=間隔字串, end=結尾字串)
  1. values:為要顯示的資料,可以是數值常值、字串常值或變數,甚至是多筆資料,資料間用「,」間隔。若要在字串常值中顯示變數資料,則要使用格式字串,並配合 %(引數串列)。

  2. %(引數串列):引數串列為 values要顯示的常數或變數。

  3. sep: 設定顯示多筆資料時的間隔字串,預設值為半形空白字元。

  4. end: 設定輸出資料字串的結尾字串,預設值為 ‘\n’ (換行字元) 。

[例] 利用 print() 函式顯示各種資料: (檔名:print1.py)

print('Python',3.8) # 顯示字串 Python 和浮點常數值 3.8  -> Python 3.8
print('台北','台中','台南',sep=',') # 顯示多筆字串資料 Python,間隔用 ','  -> 台北,台中,台南
print('高雄','屏東',sep='\t') # 顯示多筆字串資料 Python,間隔用 'tab'  -> 高雄    屏東
print('價目表:',end='') # 顯示字串: 價目表:,結尾字串設為空字串,也就是不會換行。 -> 價目表:
money=30
print('陽春麵',money,'元') # 顯示 money 變數  -> 陽春麵 30 元

1. 格式字串

print()函式要顯示的字串資料,是用單引號或雙引號前後框住,其中可以由一般字串轉換字串逸出序列三個部分組合而成。

1. 一般字串

即為任何可顯示的字元組合,如:A~Za~z0~9!*#$^& … 以及中文字元。print() 函式會將一般字串做完整的輸出。

[例] 利用 print()函式輸出「Python基礎必修課」字串: (檔名: print2.py)

print('Python基礎必修課')

2. 轉換字串

所謂的格式字串輸出,就是在一般字串輸出時,在字串內指定位置插入指定的資料,如此資料可套用格式輸出。
其作法是在字串的指定位置用轉換字串,轉換字串是由 % 轉換字元型別字元所組合。
Python 建議用字串物件的 format() 方法來格式化字串,但是轉換字串使用者仍然很多。轉換字串位置用來插入引數串列對應的資料,如下所示:

在格式字串內的轉換字串與引數串列的引數,除了數量要一致,其轉換字串的型別字元也必須與相對應引數的資料型別一致。語法如下

%[修飾字元][寬度][.小數位數]型別字元

說明:

  1. 型別字元
    用來指定輸出資料的型別,型別必須與相對應引數的資料型別一致,下表是常用的型別字元:

    資料型別%型別字元說明
    字元%c顯示單一字元。
    字串%s顯示字串。
    字元、字串%%顯示 % 字元。
    整數%d%i以十進位顯示整數。
    整數%o以八進位顯示整數。
    整數%x%X以十六進位顯示整數。
    浮點數%f以十進位顯示浮點數,小數部預設 6 位。
    浮點數%e%E%g%G以十進位科學記號顯示浮點數,數值預設寬度為 8 位,小數部預設 6 位,而 e 指數位數預設佔 2 位。
    [例] 利用轉換字串的型別字元輸出各種常值和變數: (檔名:print2.py)
    print('Python基礎必修課')
    print('%c%s先生'%('張','無忌')) # 插入字元和字串。  輸出: 張無忌先生 
    wt,price =30,20.5             # 宣告整數和浮點數變數
    print('%s%d斤,共%f元'%('香蕉',wt,wt*price)) # 輸出: 香蕉30斤,共615.000000元
  2. 寬度
    用來設定資料顯示的總寬度(即字數),浮點數的小數點也占一個寬度。若寬度比資料本身寬度小,則以資料實際寬度全部顯示

  3. 小數位數
    如果資料是浮點數時用來設定小數位數,預設值為六位。如果資料小數位數較多時會四捨五入;較少時則會補上 0。如果是字串資料則用來設定顯示的字元數。

    [例] 設定寬度來格式化輸出各種資料:(△: 代表空格) (檔名:print3.py)

    print('%d'%(12345))    # 顯示整數資料,數值「12345」,未設寬度時直接顯示整數資料。 -> 12345
    print('%8d'%(12345))   #顯示數值「ΔΔΔ12345」,設寬度為8,寬度有剩時補空格(靠右對齊)
    print('%-8d'%(-12345)) #顯示數值「-12345ΔΔ」,靠左對齊,寬度有剩時補空格
    print('%08d'%(12345)) #顯示數值「00012345」,設寬度為8,寬度有剩時補0
    print('%3d'%(-12345))  #顯示數值「-12345」,設寬度為3,寬度不足時全部顯示
    print('%c'%('A'))        #顯示字元「A」
    print('%4c'%('A'))       #顯示字元「ΔΔΔA」,寬度為4有剩補空格
    print('%c'%(65))         #顯示字元「A」,65的ASCII碼為「A」
    print('%s'%('ABCDE'))    #顯示字串「ABCDE」
    print('%8s'%('ABCDE'))   #顯示字串「ΔΔΔABCDE」,設寬度為8,寬度有剩時補空格(靠右對齊)
    print('%3s'%('ABCDE'))   #顯示字串「ABCDE」,寬度不足時全部顯示
    print('%6.2s'%('ABCDE')) #顯示字串「ΔΔΔΔAB」,設寬度為6並只顯示2字元

    [例] 檔名:print4.py

    print('%f'%12345.67)    #顯示數值「12345.670000」,小數位數預設6位
    print('%f'%-12.345)     #顯示數值「-12.345000」,小數位數預設6位
    print('%.2f'%12.345)    #顯示數值「12.35」,小數位數2位,第3位四捨五入
    print('%8.2f'%-12.3456) #顯示數值「ΔΔ-12.35」,總寬度8位,小數2位
    print('%3.1f'%123.45)   #顯示數值「123.5」,設寬度為3且小數1位,寬度不足時全部顯示
    print('%8.0f'%-1234.56) #顯示數值「ΔΔΔ-1235」,設小數位數 0 位,第 1 位四捨五入
    print('%8.0f'%1234.56)  #顯示數值「ΔΔΔΔ1235」,設小數位數 0 位,第 1 位四捨五入
    #改用科學記號顯示,e指數位數佔2位(不含+-號),小數部份佔6位
    print('%E'%1234567.89)  #顯示「1.234568E+06」,科學記號寬度不足時會四捨五入
    print('%e'%123.4)       #顯示「1.234000e+02」,小數部份佔6位,小數位數不足補0
    print('%10.2e'%12345.6) #顯示「ΔΔ1.23e+04」,設總寬度10, 小數佔2位
    print('%10.2E'%0.000123456) #顯示「ΔΔ1.23E-04」, 設總寬度10, 小數佔2位
  4. 修飾字元
    可以進一步設定輸出的格式,常用的修飾字元如下表所示:

    修飾字元說明
    #配合二、八和十六進制,設定顯示 0b0o0x 等進制符號。
    0數值資料前面多餘的寬度補 0
    -靠左對齊,預設值是靠右。
    空白字元會保留一個空格。

    [例] 利用修飾字元來格式化各種資料: (檔名:print5.py)

    print('%#x'%12345)    #顯示十六進制符號
    print('%08d'%12345)   #空格補零
    print('%-8d'%12345)   #靠左對齊
    print('% d'%12345)    #保留一個空格

3. 逸出序列(Escape sequence)

若格式字串內需要顯示一些特殊控制字元,如: 雙引號 「""」、單引號「’」、控制游標移動字元(跳格或跳到下一行行首),可在特殊字元前加逸出字元 「\」,當逸出字元加上控制字元就構成逸出序列。下表為逸出序列的使用說明:

逸出序列使用說明
\a發出系統聲。
\b倒退鍵(Backspace),遊標會由 \b 所在位置向左移一個字元。
\f換頁。
\n換行,遊標會由逸出序列所在位置跳到下一行的行首。
\r移到行首,會刪除掉該行逸出序列所在位置前面的所有字元。
\t水平跳格,相當於按 Tab 鍵。
\\顯示倒斜線「\」字元。
\'顯示單引號「'」字元。
\"顯示雙引號「"」字元。

[例] 練習在格式字串內使用逸出序列,並觀察輸出結果: (檔名:print6.py)

print('1234567890!\a') # 插入 \a,顯示字串「1234567890!」並出現音效聲 -> 1234567890! 並有系統聲
print('12345\b67890!') # 覆蓋字元 5。      -> 123467890!
print('1234567890!\n') # 游標跳到下一行行首 -> 1234567890!
print('123\r4567890!') # 游標跳回同一行行首,覆蓋掉原本的 "123"。  -> 4567890!
print('123\t4567')     # 插入水平跳格。       -> 123     4567
print('12\\3\'45\"67') # 插入 '\','"' 字元  -> 12\3'45"67

2. 引數串列

  1. 引數可以為數值常值、字串常值、字元、變數、運算式…等。
  2. 每個引數依序對應前面格式字串內的轉換字串,轉換成指定格式的字串輸出。
  3. 引數的個數必須和格式字串中的轉換字串個數相同,且兩者的資料型別要匹配。
  4. 引數只有一個時,()括弧可以省略不用。

[例] 練習使用各種引數串列方式,來顯示「汽水2打24瓶」(檔名: print7.py)

print('汽水2打24瓶')    # 顯示一般字串常數值。  輸出: 汽水2打24瓶
print('汽水%d打24瓶'%2) # 引數串列只有一個時,()可省略。 輸出: 汽水2打24瓶
print('%s%d%d瓶'%('汽水',2,24))  # 引數串列使用三個常值。 輸出: 汽水2打24瓶
dozen=2
print('%s%d%d瓶'%('汽水',dozen,dozen*12)) #引數串列使用字串、變數、運算式。 輸出: 汽水2打24瓶

相關主題與延伸閱讀