● print 函式基本格式:
print是Python 的內建輸出函式,主要功用為『將資料輸出到螢幕上』,基本語法格式如下:
print(輸出項目1, 輸出項目2,…..,sep=’分隔字元’, end=’結束字元’)
n 多個輸出項目間以逗號隔開
n sep:分隔字元;輸出多個項目間以設定的分隔字元隔開,若省略,則預設為一個空白字元。
n end:結束字元;項目輸出完畢後加入的字元,若省略,則預設為換行字元『\n』。
『範例』:輸出多個項目間以逗號區隔,每個項目之間會有一個空白作為項目的區隔。
x=123
y=567.896
z='python'
print(x,y,z)
結果:
123 567.896 python
『範例』:輸出單一項目,每個項目輸出後會換行顯示下一個輸出
x=123
y=567.896
z='python'
print(x)
print(y)
print(z)
結果:
123
567.896
python
『範例』:輸出單一項目,則設定sep參數的符號不會顯示。
x=123
y=567.896
z='python'
print(x,sep='#')
print(y,sep='#')
print(z,sep='#')
結果:
123
567.896
python
『範例』:輸出單一項目,項目結束輸出時以#符號作為結束符號。
x=123
y=567.896
z='python'
print(x,end='#')
print(y,end='#')
print(z,end='#')
結果:
123#567.896#python#
『範例』:只輸出一個項目,設定#符號作為項目的區隔,項目結束輸出時以@符號作為結束符號,只顯示@符號(因只有一個輸出項目,故不顯示#符號)。
x=123
y=567.896
z='python'
print(x,sep='#',end='@')
print(y,sep='#',end='@')
print(z,sep='#',end='@')
結果:
[email protected]@python@
『範例』:輸出多個項目,每個項目之間以@符號作為項目的區隔,項目結束輸出時以預設的換行符號作為結束符號。
x=123
y=567.896
z='python'
print(x,y,z,sep='@')
結果:
[email protected]@python
『範例』:輸出多個項目,每個項目之間的區隔為預設的空白符號,項目結束輸出時以@符號作為結束符號。
x=123
y=567.896
z='python'
print(x,y,z,end='@')
結果:
123 567.896 python@
『範例』:輸出多個項目,每個項目之間以#符號作為項目的區隔,項目結束輸出時以@符號作為結束符號。
x=123
y=567.896
z='python'
print(x,y,z,sep='#',end='@')
結果:
123#567.896#python@
●% 參數格式化:
% 參數格式化是最早也是最基本的print函式輸出格式化方式,其語法格式如下:
print(‘格式化參數1 格式化參數2…’ %(輸出項目1, 輸出項目2…))
n 項目1以格式化參數1的格式輸出在格式化參數1的位置,項目2以格式化參數2的格式輸出在格式化參數2的位置……以此類推。
n 若只有一個輸出項目,可不用加上括號。
n %符號前後可加入一個空白,以便將格式化參數與輸出項目做區隔。
n 格式化參數:設定格式為『% 格式碼』,常用格式碼如下:
% 格式碼
範例
說明
%s
(字串格式化)
%5s
固定列印 5 個字元,若字串少於 5 個字元,就在字串左方填入空白字元,大於 5 個字元則全部列印。
%d
(整數格式化)
%5d
固定列印 5 個整數字元,若少於 5 位數,在數字左方填入空白字元,大於 5 位數則全部列印。
%f
(浮點數格式化)
%8.2f
固定列印 8 個浮點數字元(含小數點),小數固定列印 2 位,小數點要佔一位,所以整數部分共 5 位(8 位減去小數 2 位與小數點 1 位),若整數少於 5 位數,會在數字左方填入空白字元;若小數少於 2 位數,會在數字右方填入『0』字元。
固定位數可省略不設定,如 .2f 代表整數位數全部顯示。
%x
%X
%x
%X
將整數數值轉換為小寫 16 進位數值輸出。
將整數數值轉換為大寫 16 進位數值輸出。
%o
%o
將整數數值轉換為 8 進位數值輸出。
%e、%E
%e
將整數數值轉換為科學記號格式輸出,預設顯示到小數點後 6 位。
+、-
%+5d
+:若輸出資料為正值,則在資料左方加上『+』符號,『+』符號也要佔一個位數。
-:若依格式輸出資料空間有多餘時,則資料靠左對齊輸出。
『範例』:
x=123
y=567.896
z='python'
print('%5d'%x)
print('%8.2f'%y)
print('%8s'%z)
結果:
123
567.90
python
『範例』:所有輸出資料靠左對齊
x=123
y=567.896
z='python'
print('%-5d'%x)
print('%-10.2f'%y)
print('%-10s'%z)
結果:
123
567.90
python
『範例』:
x=123
y=567.896
print('%+5d'%x)
print('%+10.2f'%y)
結果:
+123
+567.90
『範例』:依據各欄位顯示,設定輸出格式。
print('姓 名 座號 國文 數學 英文')
print('%3s %2d %3d %3d %3d' % ('林大明', 1, 100, 87, 79))
print('%3s %2d %3d %3d %3d' % ('陳阿中', 2, 74, 88, 100))
print('%3s %2d %3d %3d %3d' % ('張小英', 11, 82, 65, 8))
結果:
姓 名 座號 國文 數學 英文
林大明 1 100 87 79
陳阿中 2 74 88 100
張小英 11 82 65 8
『範例』:格式化參數不設定總顯示位數,只設定要顯示的小數位數,則整數位數全部顯示。
p=1368.367
print('%.2f'%p)
結果:
1368.37
『範例』:將整數數值轉換為 16、8 進位整數與科學記號格式輸出
q=168
print('%x'%q)
print('%X'%q)
print('%o'%q)
print('%e'%q)
結果:
a8
A8
250
1.680000e+02
●format 格式化:
format 方法會自動處理所有資料型態的資料,語法格式如下:
‘…{}…{}…’.format(輸出項目1, 輸出項目2…)
‘…{輸出項目索引:格式碼}…{輸出項目索引:格式碼}…’.format(輸出項目1, 輸出項目2…)
n 使用大括號{}作為資料字元,置於要輸出的指定位置,在format 方法中依序對應{}放入要輸出的資料項目(變數、字串、數值…),即大括號{}就是要輸出的資料項目。
n {}大括號內可放入索引值,索引值即format方法中的資料項目索引,依序從 0開始,如果{}大括號內不放入索引值,則輸出時預設就從索引值0開始依序對應輸出;如果{}大括號內放入索引值,則輸出時依照該索引值的資料項目輸出。
n 若{}大括號內要放入索引值,則所有{}大括號內都必須要放入索引值。
n {}大括號內可直接放入變數名稱。
n 如要加入格式碼,格式碼前必須指定輸出項目索引值,格式碼同前面的 % 格式碼,格式如下:
’…{輸出項目索引值1:格式碼1}…{輸出項目索引值1:格式碼1}…’.format(輸出項目1, 輸出項目2)
n 若輸出項目只有一個,則可以省略輸出項目索引值,格式如下:
{:格式碼}.format(輸出項目)
n 常用格式碼如下:
% 格式碼
範例
說明
s
(字串格式化)
5s
固定列印 5 個字元,若字串少於 5 個字元,就在字串左方填入空白字元,大於 5 個字元則全部列印。
d
(整數格式化)
5d
固定列印 5 個整數字元,若少於 5 位數,在數字左方填入空白字元,大於 5 位數則全部列印。
f
(浮點數格式化)
8.2f
固定列印 8 個浮點數字元(含小數點),小數固定列印 2 位,小數點要佔一位,所以整數部分共 5 位(8 位減去小數 2 位與小數點 1 位),若整數少於 5 位數,會在數字左方填入空白字元;若小數少於 2 位數,會在數字右方填入『0』字元。
固定位數可省略不設定,如 .2f 代表整數位數全部顯示。
>輸出位數
符號>輸出位數
>8
=>8
輸出共 8 位數,靠右對齊。
輸出共 8 位數,靠右對齊空位部分以『=』符號填滿。
<輸出位數
符號<輸出位數
<8
=<8
輸出共 8 位數,靠左對齊。
輸出共 8 位數,靠左對齊空位部分以『=』符號填滿。
^輸出位數
符號^輸出位數
^8
=^8
輸出共 8 位數,置中對齊。
輸出共 8 位數,置中對齊空位部分以『=』符號填滿。。
,
,
將整數數值加上千分位符號。
+
+8d
+:若輸出資料為正值,則在資料左方加上『+』符號,『+』符號也要佔一個位數。
x、X
x、X
將整數數值轉換為小寫、大寫 16 進位數值輸出。
o
o
將整數數值轉換為 8 進位數值輸出。
b
b
將整數數值轉換為 2 進位數值輸出。
『範例』:依序將各變數對應至相對位置的{}
name='李大年'
height=180
weight=70
print('您好,我是{},我的身高是{}cm,體重是{}kg'.format(name,height,weight))
結果:
您好,我是李大年,我的身高是180cm,體重是70kg
『範例』:{}大括號內放入索引值,依索引值輸出資料。
name='李大年'
height=180
weight=70
print('您好,我是{0},我的身高是{2}cm,體重是{1}kg'.format(name,height,weight))
結果:
您好,我是李大年,我的身高是70cm,體重是180kg
『範例』:{}大括號內加入格式碼輸出
name='李大年'
height=180
weight=70
print('您好,我是{0},我的身高是{1:.2f}cm,體重是{2:.2f}kg'.format(name,height,weight))
結果:
您好,我是李大年,我的身高是180.00cm,體重是70.00kg
『範例』:{}大括號內加入格式碼輸出
x=123
y=567.896
z='python'
print('x={0:8d}\ny={1:8.2f}\nz={2:8s}'.format(x, y, z))
結果:
x= 123
y= 567.90
z=python
『範例』:資料靠右、靠左、置中對齊,加入千分位符號。
x=123
y=567.896
z='python'
t=123456789
print('x={0:>10}\ny={1:<10}\nz={2:^10}\nt={3:,}'.format(x, y, z, t))
結果:
x= 123
y=567.896
z= python
t=123,456,789
『範例』:資料靠右、靠左、置中對齊,空位填入*符號。
x=123
y=567.896
z='python'
print('x={0:*>10}\ny={1:*<10}\nz={2:*^10}'.format(x, y, z))
結果:
x=*******123
y=567.896***
z=**python**
『範例』:正值顯示『+』符號,負值直接顯示。
a=123
b=-5678
print('a={0:+6d}\ny={1:6d}'.format(a, b))
結果:
a= +123
b= -5678
『範例』:將整數數值轉換為 16、8、2 進位整數輸出
a=168
print('{:x}'.format(a))
print('{:X}'.format(a))
print('{:o}'.format(a))
print('{:b}'.format(a))
結果:
a8
A8
250
10101000
●f’…字串…’格式化:
此格式是 Python 3.6 版以後增加的語法,在字串前方加上字母 f 即可將輸出格式化,語法格式如下:
f’……{輸出項目變數1}……{輸出項目變數2}……’
f’……{輸出項目變數1:格式碼1}……{輸出項目變數2:格式碼2}……’
n 輸出項目變數可以是一般變數與運算式
n Python 3.8 版後此格式又新增了新語法格式,在變數與運算式後面加上『=』符號,可直接輸出變數或運算式與等號,格式如下:
f’……{輸出項目變數1=}……{輸出項目變數2=}……’
『範例』:以 f ‘字串’格式輸出變數項目
name='陳美玲'
age=25
print(f'您好,我是{name},今年{age}歲。')
結果:
您好,我是陳美玲,今年25歲。
『範例』:以 f ‘字串’格式輸出變數值與運算式結果並加入格式碼格式化
pi=3.141592653589797
r=15
print(f'圓半徑={r}, 圓周長={2*pi*r:.3f}, 圓面積={pi*r*r:.3f}')
結果:
圓半徑=15, 圓周長=94.248, 圓面積=706.858
『範例』:以 f ‘字串’格式輸出變數與變數值及運算式與運算式結果並加入格式碼格式化
pi=3.141592653589797
r=15
print(f'圓半徑{r=}, 圓周長{2*pi*r=:.3f}, 圓面積{pi*r*r=:.3f}')
結果:
圓半徑r=15, 圓周長2*pi*r=94.248, 圓面積pi*r*r=706.858