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-2025 CODEPRJ.COM