Python格式化輸出字符串 (%, format(), f'')


格式說明符/占位符:%

目的:格式與內容分離,制作復雜的公共字符串模板,讓某些位置變成動態可輸入的。

用法:' %[datatype]  '  % (data, data, ...)

  %前設置輸出格式,用引號括起來;%后設置輸出內容,格式部分有幾個%,內容部分就有幾個數據,多個數據時用小括號括起來,並用逗號分隔。

  需要輸出%時,可以用%%轉義,就取消了占位符的作用

print('3%%%s' % 'gg')

 

結果:

3%gg

 

整型

%o 八進制 ,%d  (或%i)十進制,%x 十六進制

print('%d' % 30)
print('%o' % 30)
print('%x' % 30)

執行結果:

30
36
1e

浮點數

%f 普通輸出,默認小數點后6位,

%e 科學計數法輸出 ,默認同上

%g 默認6位有效數字,默認普通輸出,當整數部分超過有效數字位數時,改為科學計數法輸出

%.3f 保留3位有效數字

print('%f' % 1.22221233)
print('%e' % 1.11287631812)
print('%.8g' % 682632894.85982379)

結果:

1.222212
1.112876e+00
6.8263289e+08

字符串輸出

%s 

%20s 右對齊,20位寬度,超過沒事兒,不夠補空格

%-20s 左對齊,同上

%.5s 截取5位

%10.5 右對齊,10位寬度,截取5位 

在%與s中間,可選項

  [-]對齊方式

  [num]占位寬度

  [.num]截取位數

print('%s' % 'ok')
print('%20s' % 'interpreter')
print('%-20s' % 'interpreter')
print('%.5s' % 'interpreter')
print('%20.5s' % 'interpreter')
msg = " %s  %s  %s " %('hello','world','!')
 

name = input('請輸入姓名')
age = input('請輸入年齡')
job = input('請輸入職業')
hobby = input('請輸入興趣')
msg = '''------------ info of %s ------------
Name : %s
Age : %d
Job : %s
Hobby : %s
------------ end ------------''' % (name,name,int(age),job,hobby)
print(msg)
 

結果:

ok
_________interpreter
interpreter_________         
inter
inter_______________

 

轉義字符

轉義字符 描述
\(在行尾時) 續行符
\\ 反斜杠符號
\' 單引號
\" 雙引號
\a 響鈴
\b 退格(Backspace)
\e 轉義
\000 空
\n 換行
\v 縱向制表符,將光標移動到下一行的開頭
\t 橫向制表符,將光標向右移動一個制表符位
\r 回車
\f 換頁

 

format()

格式化輸出,還有另一種方法,那就是format()函數。

基本語法是通過 {} 和 : 來代替以前的 % 。與%同理,可以用{{}}來轉義輸出{}。

 

輸出數字

: 后面寫格式說明,形如{:.3f},表示小數點后3位有效數字的浮點數;{:.2%}表示百分數小數點后兩位。

最前面是要填充的字符,只能是單個字符,默認是空格。

^, <, > 分別是居中、左對齊、右對齊,后面帶寬度

+ 表示在正數前顯示 +,負數前顯示 -

.表示有效數字位數

 

 

 

輸出字符串

用法一:使用位置參數

print('{} {}'.format('hello', 'world'))

print('{0}{1}{2}{3}{4}{3}{2}{1}{0}'.format('上', '海', '自', '來', '水'))

  可以使用list作為參數,列表對象前要加*,如下(可以和用法三中索引列表進行比較)

list1 = ['A', 'B', 'C']
print('{} {} {}'.format(*list1))
# 可以用索引號隨意選擇輸出的元素,結果:A B A
list1 = ['A', 'B', 'C']
print('{0} {1} {0}'.format(*list1))
# 當傳入兩個列表參數時,索引號會依次排列下去,結果:A B A c a
list1 = ['A', 'B', 'C']
list2 = ['a', 'b', 'c']
print('{0} {1} {0} {5} {3}'.format(*list1, *list2))

 

用法二:使用關鍵字參數,在{}內寫變量名,用format()參數傳入相應變量

print('''地區:{area}
人口數:{people}'''.format(area='上海', people='24000000'))
# 必須在format()參數內對關鍵字進行賦值。
print('''地區:{area}
人口數:{people}'''.format(area='上海', people='24000000'))
# 必須在format()參數內對關鍵字進行賦值。

# 但是,如果使用另一種方式(3.6以上版本),可以讓關鍵字在外面賦值
area = '阿拉斯加'
people = '100'
print(f'''地區:{area}
人口數:{people}''')

  可以使用dict作為參數,字典對象前要加**,如下

dict1 = {'area': '北京', 'people': '22000000'}
print('''地區:{area}
人口數:{people}'''.format(**dict1))

用法三:使用索引

# A 90 B 80 C 70
list1 = ['A', 'B', 'C']
list2 = ['90', '80', '70']
print('{0[0]} {1[0]} {0[1]} {1[1]} {0[2]} {1[2]}'.format(list1, list2))  # 參數只要是能索引的對象就行

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM