日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python全栈_007_Python3格式化输出

發布時間:2023/12/20 python 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python全栈_007_Python3格式化输出 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1:%用法

1.1:整數的輸出:

%o —— oct 八進制
%d —— dec 十進制 ;%nd:至少輸出n位,不足n位就在其左邊補空格
%x —— hex 十六進制

a = 123 print('%o' % (a) ) print('%3d' % (a) ) print('%5d' % (a) )
print('%-5d' % (a) )
print('%x' % (a) )

1.2:浮點數的輸出:

1.2.1 格式化輸出

%f ——保留小數點后面六位有效數字(會對第7位進行四舍五入處理)
  %.3f,保留3位小數位(會對第4位進行四舍五入處理)
%e ——保留小數點后面六位有效數字,指數形式輸出
  %.3e,保留3位小數位,使用科學計數法
%g ——在保證六位有效數字的前提下,使用小數方式,否則使用科學計數法
  %.3g,保留3位有效數字,使用小數或科學計數法 # %f a = 12.123456789 print("%f" % (a)) # 12.123457 print("%.7f" % (a)) # 12.1234568 a = 12.123456 print("%f" % (a)) # 12.123456 print("%.7f" % (a)) # 12.1234560# %e a = 12.123456789 print("%e" % (a)) # 1.212346e+01 print("%.7e" % (a)) # 1.2123457e+01# %g a = 12345.123456789 print("%g" % (a)) # 12345.1 print("%.7g" % (a)) # 12345.12 print("%.3g" % (a)) # 1.23e+04

1.2.2 內置round()

  round(number[, ndigits])
  參數:
  number - 這是一個數字表達式。
  ndigits - 表示從小數點到最后四舍五入的位數。默認值為0。
  返回值
  該方法返回x的小數點舍入為n位數后的值。

  round()函數只有一個參數,不指定位數的時候,返回一個整數,而且是最靠近的整數,類似于四舍五入,當指定取舍的小數點位數的時候,一般情況也是使用四舍五入的規則,但是碰到.5的情況時,如果要取舍的位數前的小數是奇數,則直接舍棄,如果是偶數則向上取舍。

  注:“.5”這個是一個“坑”,且python2和python3出來的接口有時候是不一樣的,盡量避免使用round()函數吧

print(round(1.1235)) # 1 print(round(1.1236,3)) # 1.124 print(round(1.1235,3)) # 1.123 ?? 不應該是1.124嗎?? print(round(1.1245,3)) # 1.125print(round(0.5)) # 0 ?? 不應該是1 嗎 print(round(1.5)) # 2 print(round(2.5)) # 2 ?? 不應該是3 嗎print(round(1.475,2)) # 1.48 print(round(2.475,2)) # 2.48print(round(1.575,2)) # 1.57 ???? print(round(2.575,2)) # 2.58 ????print(round(1.675,2)) # 1.68 ???? print(round(2.675,2)) # 2.67 ????

1.3:字符串輸出:

''' %s %10s ——右對齊,占位符10位 %-10s ——左對齊,占位符10位 %.2s ——截取2位字符串 %10.2s ——10位占位符,截取兩位字符串''' s = 'abcdef' print('[%s]' % s) print('[%10s]' % s) print('[%-10s]' % s) print('[%.2s]' % s) print('[%10.2s]' % s) print('[%-10.2s]' % s)

輸出結果:

1.4:其他:

?1.4.1:字符串格式代碼

序號符號說明
1%s字符串
2%c字符
3%d十進制整數
4%i整數
5%u無符號整數
6%o八進制整數
7%x十六進制整數
8%X十六進制整數大寫
9%e浮點數格式1
10%E浮點數格式2
11%f浮點數格式3
12%g浮點數格式4
13%G浮點數格式5
14%%字符%

?

a = 255 print('%s' % ('hello')) print('%c' % ('h')) print('%d' % (a)) # 255 print('%i' % (a)) # 255 print('%u' % (-1)) # -1 ??? 為什么不是把 -1 轉換為正數?? print('%o' % (a)) # 377 print('%x' % (a)) # ff print('%X' % (a)) # FF f = 12378921.123456789 print('%e' % f) print('%E' % f) print('%f' % f) print('%g' % f) print('%G' % f)print('%d%%' % (89)) # 輸出 89%

?1.4.2:常用轉義字符

序號轉義字符說明
1\ (在行尾時)續行符
2\\代表一個反斜線字符''\'
3\'代表一個單引號(撇號)字符
4\"代表一個雙引號字符
5\a響鈴(BEL)
6\b退格(BS) ,將當前位置移到前一列
7\e轉義
8\000
9\n換行(LF) ,將當前位置移到下一行開頭
10\v垂直制表(VT)
11\t水平制表(HT) (跳到下一個TAB位置)
12\r回車(CR) ,將當前位置移到本行開頭
13\f換頁(FF),將當前位置移到下頁開頭
14\oyy八進制數yy代表的字符,如:\o12代表換行符
15\xyy十六進制yy代表的字符,如:\x0a代表換行符
16\other其它的字符以普通格式輸出

?

2:format用法

?  相對基本格式化輸出采用‘%’的方法,format()功能更強大,該函數把字符串當成一個模板,通過傳入的參數進行格式化,并且使用大括號‘{}’作為特殊字符代替‘%’

?2.1:位置匹配:

a:不帶編號,即"{}"
b:帶數字編號,可調換順序,即"{1}","{2}"
c:帶關鍵字,即"{name}","{age}" ''' a:不帶編號,即"{}" b:帶數字編號,可調換順序,即"{1}","{2}" c:帶關鍵字,即"{name}","{age}" '''print('{} {}'.format('come on','baby')) # 不帶字段 print('{0} {1}'.format('come on','baby')) # 帶數字編號 print('{0} {1} {0}'.format('come on','baby')) # 帶數字編號,打亂順序 print('{1} {1} {0}'.format('come on','baby')) # 帶數字編號,打亂順序 print('{come} {b}'.format(b = 'baby',come = 'come on')) # 帶關鍵字# 通過位置匹配: print('通過位置匹配:') print('{0},{1},{2}'.format('a','b','c')) print('{},{},{}'.format('a','b','c')) print('{2},{1},{0}'.format('a','b','c')) # 打亂順序 print('{2},{1},{0}'.format(*'1234')) # 打亂順序 print('{2},{0},{0}'.format('a','b','c')) # 可重復# 通過下標或key匹配參數 print('通過下標或key匹配參數:') point = (5,9) print('x:{0[0]},y:{0[1]}'.format(point)) # x:5,y:9 dic = {'key1':'value1','key2':'value2'} print('x:{0[key1]},y:{0[key2]}'.format(dic)) # x:value1,y:value2 s = 'hello' print('{0[0]},{0[1]},{0[0]}'.format(s)) # h,e,h

?2.2:格式轉換:

''' 格式轉換 'b' - 二進制。將數字以2為基數進行輸出。 'c' - 字符。在打印之前將整數轉換成對應的Unicode字符串。 'd' - 十進制整數。將數字以10為基數進行輸出。 'o' - 八進制。將數字以8為基數進行輸出。 'x' - 十六進制。將數字以16為基數進行輸出,9以上的位數用小寫字母。 'e' - 冪符號。用科學計數法打印數字。用'e'表示冪。 'g' - 一般格式。將數值以fixed-point格式輸出。當數值特別大的時候,用冪形式打印。 'n' - 數字。當值為整數時和'd'相同,值為浮點數時和'g'相同。不同的是它會根據區域設置插入數字分隔符。 '%' - 百分數。將數值乘以100然后以fixed-point('f')格式打印,值后面會有一個百分號。 '''a = 65 b = 66 c = 67 print(chr(a),chr(b),chr(c)) print('{:b}'.format(a)) # 不帶編號 print('{2:b}'.format(c,b,a)) # 帶編號 print('{name:b}'.format(name = a)) # 帶關鍵字 b = 66 print('{:b}'.format(b)) # 二進制形式輸出 print('{0:c}'.format(b)) # 字符形式輸出 print('{0:d}'.format(b)) # 十進制數形式輸出 print('{0:o}'.format(b)) # 八進制數形式輸出 print('{0:x}'.format(b)) # 十六進制數形式輸出 print('{0:e}'.format(b)) # 用科學計數法打印數字。用'e'表示冪。 print('{0:g}'.format(b)) # 一般格式。將數值以fixed-point格式輸出。當數值特別大的時候,用冪形式打印。 print('{0:n}'.format(b)) # 當值為整數時和'd'相同,值為浮點數時和'g'相同。不同的是它會根據區域設置插入數字分隔符。 print('{0:%}'.format(b)) # 將數值乘以100然后以fixed-point('f')格式打印,值后面會有一個百分號。

?2.3:進階用法:

2.3.1:進制轉換

a = 66 b = '{:#x}'.format(a) print(a,b) print('int:{0:d},hex:{0:x},oct:{0:o},bin:{0:b}'.format(a)) print('int:{0:d},hex:{0:#x},oct:{0:#o},bin:{0:#b}'.format(a)) # 在前面加'#',則帶進制前綴

2.3.2:左中右對齊及位數補全

a): <: (默認)左對齊; >:右對齊; ^:中間對齊;=:(只用于數字)在小數點后進行補齊
b): 取位數“{:4s}”、"{:.2f}"等 ''' a): <: (默認)左對齊; >:右對齊; ^:中間對齊;=:(只用于數字)在小數點后進行補齊 b): 取位數“{:4s}”、"{:.2f}"等 '''s1 = 'hello' s2 = 'world' print('1:[{}] and [{}]'.format(s1,s2)) # 默認默認左對齊 print('2:[{:10s}] and [{:>10s}]'.format(s1,s2)) # 取10位左對齊,取10位右對齊 print('3:[{:^10s}] and [{:^10s}]'.format(s1,s2)) # 取10位中間對齊 f1 = 3.145123456 f2 = 3.143 print('4:[{}],[{:.2f}]'.format(f1,f1)) # 原樣輸出,取2位小數 print('5:[{}],[{:>10.2f}]'.format(f1,f1)) # 原樣輸出,右對齊,取10位,其中取2位小數 s1 = 'HelloWorld' print('6:[{:<30}]'.format(s1)) # 左對齊 print('7:[{:>30}]'.format(s1)) # 右對齊 print('8:[{:^30}]'.format(s1)) # 中間對齊 # 填充 print('9:[{:*^30}]'.format(s1)) print('10:[{:0^30}]'.format(s1))print('11:[{:0=30}]'.format(11)) print('12:[{:0>30}]'.format(11))

運行結果:

2.3.3:正負符號顯示

f1 = 3.158 f2 = -3.158 print('1:[{}];[{}]'.format(f1,f2)) print('2:[{:+f}];[{:+f}]'.format(f1,f2)) # 總是顯示符號 print('3:[{:f}];[{:f}]'.format(f1,f2)) # print('4:[{: f}];[{: f}]'.format(f1,f2)) # f前面有空格,若是+數,則在前面留空格 print('5:[{:-f}];[{:-f}]'.format(f1,f2)) # -數時顯示-,與'{:f}; {:f}'一致

運行結果:

2.3.4:百分數 %

# 百分數% print('{:.2f}'.format(1 / 3)) # 0.33 print('{:.2%}'.format(1 / 3)) # 33.33%

2.3.5:時間

import datetime d = datetime.datetime(2018,12,12,11,29,56) print('{:%Y-%m-%d %H:%M:%S}'.format(d)) # 2018-12-12 11:29:56

2.3.6:逗號","分隔金錢,沒以前進位

# 逗號","分隔金錢,沒以前進位 print('{:,}'.format(1234567890123456789)) # 1,234,567,890,123,456,789

2.3.7:占位符嵌套

print('--1:' + '-'*30) for align, text in zip('<^>', ['left', 'center', 'right']):print(align,text) print('--2:' + '-'*30) for align, text in zip('<^>', ['left', 'center', 'right']):print('{0:{fill}{align}16}'.format(text, fill=align, align=align))# print('{0:<<16}'.format(text))# print('{0:^^16}'.format(text))# print('{0:>>16}'.format(text)) print('--3:' + '-'*30) octets = [192, 168, 0, 1] print('{:02X}{:02X}{:02X}{:02X}'.format(*octets)) print('{:0>2X}{:0>2X}{:0>2X}{:0>2X}'.format(*octets)) print('{:0<2X}{:0<2X}{:0<2X}{:0<2X}'.format(*octets)) print('--4:' + '-'*30) width = 5 for num in range(5,12):for base in 'dXob':print('{0:{width}{base}}'.format(num,base = base,width = width),end = ' ')print('')

運行結果:

2.3.8:占位符%s和%r

""" replacement_field ::= "{" [field_name] ["!" conversion] [":" format_spec] "}" conversion ::= "r" | "s" | "a" 這里只有三個轉換符號,用"!"開頭。 "!r"對應 repr();"!s"對應 str(); "!a"對應ascii()。 """print("repr() shows quotes: {!r}; str() doesn't: {!s};{!a}".format('1234', '1235', '23')) print(repr('1234')) print(str('1234')) s = repr('234') print(s,type(s)) print(ascii('65'))

?2.4:format的用法變形:

# 1: a.format(b) s1 = 'Hello' s2 = 'World' print('{0} {1}'.format(s1,s2))# 2: f'xxxxxx' # 可以在字符串前加f以達到格式化的目的,在{}里加入對象,此為format的另一種形式: s1 = 'Hello' s2 = 'World' print(f'{s1} {s2}') print(f'{len(s1)} {s2.count("o")} {s2.upper()}') # 還可以使用函數 name = '你大爺' age = 18 sex = 'Man' job = "IT" salary = 8888.9868print(f'my name is {name.capitalize()}. the len of {name} is {len(name)}') print(f'I am {age:*^10} years old.') print(f'I am a {sex}') print(f'My salary is {salary:10.3f}')

?

轉載于:https://www.cnblogs.com/ixuby/p/10103626.html

總結

以上是生活随笔為你收集整理的python全栈_007_Python3格式化输出的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。