【无为则无心Python基础】— 18、Python字符串的格式化输出
文章目錄
- 1、什么是格式化輸出
- 2、Python格式化輸出的五種方式
- 方式1:字符串之間用+號拼接
- 方式2:`print()`函數(shù)可同時輸出多個字符串
- 方式3:占位符方式
- 常用格式化符號
- 示例:
- 拓展示例
- 方式4:f格式化方式(推薦)
- 方式5:`format()`函數(shù)方式
- `format()`函數(shù)對齊方式說明
- 示例:
- 3、`print( )`函數(shù)結束符
- `sep`參數(shù)
- `end`參數(shù):結束符
1、什么是格式化輸出
數(shù)據(jù)按照某種特殊的要求輸出,假如字符串中有各種格式的數(shù)據(jù),要拼接輸出:
- 如果輸入一個整數(shù),希望整數(shù)按照十六進制,八進制輸出。
- 如果輸入一個小數(shù),希望小數(shù)保留后面2位數(shù)然后輸出。
- 以科學計數(shù)法的方式來輸出小數(shù)。
- 字符串的輸出希望在十個格子內(nèi)輸出,或者左對齊,居中等等
即所謂的格式化輸出就是需要按照一定的格式輸出內(nèi)容。
2、Python格式化輸出的五種方式
Python的字符串變量有五種輸出方式,下面我們分類來介紹一下。
方式1:字符串之間用+號拼接
# 字符串之間也可以進行加法運算 # 如果將兩個字符串進行相加, # 則會自動將兩個字符串拼接為一個字符串 a = 'abc' + 'haha' + '哈哈' print("a = "+ a) # a = abchaha哈哈# 字符串只能和字符串之間用+號進行拼接, # 不能和其他的類型進行加法運算,如數(shù)值型變量。 # 如果做了會出現(xiàn)異常 TypeError: must be str, not int a = 123 print("a = "+a) # 報錯 # 這種寫法在Python中不常見方式2:print()函數(shù)可同時輸出多個字符串
# print()函數(shù)可同時輸出多個字符串 print("hello","ptyhon") # hello ptyhon# 這種寫法無論a是什么類型變量, # 都能進行拼接字符串輸出了。 a = 123 print('a =',a) # a = 123 b = 18 print("我今年",b,"歲") # 我今年 18 歲 # 注意:這種輸出方式拼接的字符串,拼接的位置會有空格。 # 這種方式在實際開發(fā)中也不常用。方式3:占位符方式
表示在創(chuàng)建字符串時,可以在字符串中指定占位符。
常用格式化符號
| %s(常用) | 字符串 |
| %d(常用) | 有符號的十進制整數(shù) |
| %f(常用) | 浮點數(shù) |
| %c | 字符 |
| %u | 無符號十進制整數(shù) |
| %o | 八進制整數(shù) |
| %x | 十六進制整數(shù)(小寫ox) |
| %X | 十六進制整數(shù)(大寫OX) |
| %e | 科學計數(shù)法(小寫’e’) |
| %E | 科學計數(shù)法(大寫’E’) |
| %g | %f和%e的簡寫 |
| %G | %f和%E的簡寫 |
我們常用的格式化符號是前三個,剩下的不用去死記硬背,以后用到的時候可以來筆記中查詢即可。
示例:
""" 占位符格式化輸出分為兩個步驟 1. 準備數(shù)據(jù)(定義輸出變量) 2. 格式化符號輸出數(shù)據(jù)(執(zhí)行輸出) """# 1. 今年我的年齡是x歲 -- 整數(shù) %d # 結果:今年我的年齡是18歲 age = 18 print('今年我的年齡是%d歲' % age)#如果占位符沒有添加內(nèi)容,則原樣輸出占位符。 #結果:今年我的年齡是%d歲 print('今年我的年齡是%d歲')# 2. 我的名字是x -- 字符串 %s # 結果:我的名字是TOM name = 'TOM' print('我的名字是%s' % name)# 3. 我的體重是x公斤 -- 浮點數(shù) %f # 結果:我的體重是75.500000公斤 weight = 75.5 print('我的體重是%f公斤' % weight) # 說明%f默認顯示小數(shù)點后6位# %.xf,表示小數(shù)點后顯示的小數(shù)位數(shù)。 # 結果:我的體重是75.50公斤 print('我的體重是%.2f公斤' % weight)# 4. 我的學號是x -- %d # 結果:我的學號是1 stu_id = 1 print('我的學號是%d' % stu_id)# %03d,表示輸出的整數(shù)顯示位數(shù),不足以0補全,超出當前位數(shù)則原樣輸出 stu_id2 = 1000 print('我的學號是%03d' % stu_id) # 001 print('我的學號是%03d' % stu_id2) # 1000# 5. 我的名字是x,今年x歲了 # 把前邊的占位符,按順序在()小括號內(nèi)進行賦值,用逗號分隔。 # 結果:我的名字是TOM,今年18歲了 print('我的名字是%s,今年%d歲了' % (name, age))# 我的名字是x,明年x歲了 # 結果:我的名字是TOM,今年19歲了 print('我的名字是%s,明年%d歲了' % (name, age + 1)) # 說明在給占位符賦值的時候是可以進行運算的。拓展示例
# 6. 我的名字是x,今年x歲了,體重x公斤 # 結果:我的名字是TOM,今年18歲了,體重75.50公斤 name = 'TOM' age = 18 weight = 75.5 print('我的名字是%s,今年%d歲了,體重%.2f公斤,學號是%06d' % (name, age, weight))# 拓展 # 因為最終結果是以字符串輸出完整句子 # 那字符串中所有的數(shù)據(jù)都可以用字符串進行占位輸出 # 我的名字是x,今年x歲了,體重x公斤 # 結果:我的名字是TOM,今年18歲了,體重75.5公斤 print('我的名字是%s,今年%s歲了,體重%s公斤' % (name, age, weight)) # 總結:如果你不太確定應該用什么,%s永遠起作用,它會把任何數(shù)據(jù)類型轉(zhuǎn)換為字符串。# 7、%d占位符,如果傳入的是小數(shù),只保留整數(shù)部分 print('hello %d' % 123.95) # hello 123# 8、%3.5s字符串的長度限制在3-5之間,多了截取,少了補空格 print('hello %3.5s' % 'abcdefg') # hello abcde print('hello%3.5s' % 'abc') # helloabc print('hello%3.5s' % 'ab') # hello ab# 9、左對齊、右對齊 # 右對齊,取20位,不夠則空格補位 print('%20s' % 'hello python')# 左對齊,取20位,不夠則空格補位 print('%-20s' % 'hello python') # 上面兩句代碼執(zhí)行結果如下hello python hello python方式4:f格式化方式(推薦)
格式化字符串除了%s,還可以寫為f'{表達式}'。
f-格式化字符串是Python3.6中新增的格式化方法,該方法更簡單易讀,性能更高效。
# 在f格式化字符串中可以直接嵌入變量,{ }內(nèi)就是變量的名稱,也可以進行運算賦值。 age = 18 name = 'TOM'# 我的名字是TOM,明年19歲了 # 結果:我的名字是TOM,明年19歲了 print('我的名字是%s,明年%d歲了' % (name, age + 1))# 我的名字是TOM,明年19歲了 # 結果:我的名字是TOM,明年19歲了 print(f'我的名字是{name},明年{age + 1}歲了')# 注意: # 在格式化字符串中,所引用的變量一定是被定義過的。 # 如果引用的變量沒有被定義,就會報錯NameError: name 'xx' is not defined print(f'我的名字是{name},明年{age + 1}歲了,體重{weight}公斤') # NameError: name 'weight' is not defined方式5:format()函數(shù)方式
通過字符串的format( )方法進行格式化輸出。
# 1、順序填坑:{} 占位符 # 輸出結果:姓名是Tom,年齡是20 print('姓名是{},年齡是{}'.format('Tom',20))# 2、下標填坑(自定義順序匹配): # format方法里參數(shù)的腳標從0開始。 # 輸出結果:姓名是:Tom,年齡是:20 print('姓名是:{1},年齡是:{0}'.format(20,'Tom'))# 3、變量填坑(鍵值匹配): # 占位符中的變量名和參數(shù)中定義的變量名一一對應。 # 輸出結果:姓名是:Tom,年齡是:20 print('姓名是:{name},年齡是:{age}'.format(name='Tom',age=20))format()函數(shù)對齊方式說明
| 5 | {:0>2} | 05 | 數(shù)字補零 (靠右填充左邊, 寬度為2) |
| 5 | {:x<4} | 5xxx | 補x (靠左,填充右邊, 寬度為4) |
| 10 | {:x^4} | x10x | 補x (居中填充, 寬度為4) |
| 13 | {:10} | 13 | 右對齊 ( 寬度為10),默認對齊方式 |
| 13 | {:<10} | 13 | 左對齊 (寬度為10) |
| 13 | {:^10} | 13 | 中間對齊 (寬度為10) |
說明:
- 對齊方式直白語法(1):(2)補全的內(nèi)容(符號)(3)補全方向 (4)字符串總寬度
- (1)冒號:固定寫法
- (2)補全的內(nèi)容(符號):自己定義,就是長度不夠的時候,可以補0或者*等。
- (3)補全方向:<填充右邊,>填充左邊,也就是口向哪邊,就向哪個方向填充,^表示居中。
- (3)字符串總寬度:就是占位符變量的字符長度,字符長度不夠總寬度,按方向補全(2)定義的符號。
- 冒號前可定義上邊所說的下標{1:x<4},也可以是變量名{name:x^4}.
示例:
# 輸出結果 # 姓名是:Tom******** # 年齡是:*********20 print('姓名是:{0:*<11}\n年齡是:{1:*>11}'.format('Tom',20))# 輸出結果 # 姓名是:****Tom**** # 年齡是:****20***** print('姓名是:{0:*^11}\n年齡是:{1:*^11}'.format('Tom',20))3、print( )函數(shù)結束符
如果設置了print( )函數(shù)的結束符號,我們可以控制格式化輸出數(shù)據(jù)的各種展示方式。
print( )是Python的一個內(nèi)置函數(shù),它有哪些具體的參數(shù)呢?
簡單說明:
- print( )函數(shù)的作用:打印相應的內(nèi)容。
- print( )函數(shù)的返回值為None。(None的內(nèi)容可以看之前的總結)
- file參數(shù):原始的sys.stdout指向控制臺。(其他的看表中描述,更多的自己去擴展。)
- flush參數(shù):flush值為True或者False,默認為Flase。表示是否立刻將輸出語句輸入到參數(shù)file指向的對象中(默認是sys.stdout)。
sep參數(shù)
sep參數(shù)用來間隔多個對象,默認值是一個空格。
# 使用print()函數(shù),同時輸出多個參數(shù),多個參數(shù)之間是默認用空格分隔的。 # 輸出結果: # hello python print("hello","python")# 輸出結果: # hello***python # www.baidu.com print("hello","python",sep="***") print("www","baidu","com",sep=".")end參數(shù):結束符
想一想,為什么兩個print()函數(shù)之間會換行輸出?
在Python中print( )函數(shù), 默認自帶end="\n"這個換行結束符,所以導致每兩個print()函數(shù)之間直接會換行展示,用戶可以按需求更改結束符。
總結:end =什么就會在輸出的末尾添加什么,默認值是換行符\n,我們可以換成其他字符串。
# print()函數(shù)默認結束符end="\n" # 輸出結果: # hello # python print("hello",end="\n") print("python",end="\n")# end參數(shù)可以換任何符號,如制表符或者自定義符號 # 輸出結果: # hello python*** print("hello",end="\t") print("python",end="***")參考:https://blog.csdn.net/luomanluoland/article/details/80630006
總結
以上是生活随笔為你收集整理的【无为则无心Python基础】— 18、Python字符串的格式化输出的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 张浩java成绩大于98分_1028学习
- 下一篇: 复旦大学2018--2019学年第二学期