正式的Python專欄第22篇,同學站住,別錯過這個從0開始的文章!
前篇分析了字串的簡單使用,這篇我們看看字串的格式化
什么是字串格式化,為什么需要這樣做?
我們有時候刷抖音/B站看到封面很好看,但是進入直播發現,不過如此!
想必主播通過某種方式把輸出轉換為讀者想看的內容,
是不是大概懂了什么是格式化和格式化的必要性了!
僅僅類比,我們程式的格式化,并沒有那么過份!1輸出還是1,只是人類更好讀懂了,
而不像網路主播那樣稍微格式化(工程挺大)從1變成了0,
畢竟程式不能欺騙開發者,
必要性:輸出為更好的格式化,方便開發者和用戶讀懂輸出,
程式中都有哪些格式化?
網上說有三種,四種,未來還可能會增加其他庫,
學委開發過多種語言,大概總結如下兩個大類:
- 字串占位符替換
- 字串關鍵字替換
下面看看代碼
占位符格式化
第一種%占位符格式化
python中我們最常見的是’%‘ 這類占位符號
str = "hello"
"this is a string: %s" % str
"this is a string: %s, %s" % (str, str)
上面我們觀察一下,可以發現輸出中‘%s’被替換為了’hello’;
另一個是多個‘%s’的替換是用一個元組,按照對應下標來替換,
格式化基本上都可以使用’%s’來完成,
好,懂了這個,我們繼續看看下面的代碼:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/10/30 10:13 上午
# @Author : LeiXueWei
# @CSDN/Juejin/Wechat: 雷學委
# @XueWeiTag: CodingDemo
# @File : string_format.py
# @Project : hello
import sys
first = "持續學習"
second = "持續開發"
slogan = first + second
print(slogan)
banner = "*" * 16
print(banner)
slice = slogan[2:4]
print(slice)
print(""""學習" in slogan : %s""" % ("學習" in slogan))
print(""""不學習" not in slogan : %s""" % ("不學習" not in slogan))
print(r"""列印\n換行被當做普通字符輸出了!""")
# 以上我們都可以看到%,很多次代碼都有說到這個,但是并沒有過多解釋
print("%s" % slogan) # 最常用了%s 格式化字串
# print("%c"%'ccc')#TypeError: %c requires int or char
print("%c" % 'c') # %c 通常用來強制檢測待輸出的字串必須長度為1
print("%c" % '雷') # %c 通常用來強制檢測待輸出的字串必須長度為1
number = 102.40101
print("%%i 符號整數 %i" % number)
print("%%i 符號整數:%i" % -number)
print("%%d 符號整數 %d" % number)
print("%%d 符號整數 %d" % -number)
print("%%u 無符號整數:%u" % number)
print("%%u 無符號整數:%u" % -number)
#print("八進制 %o" % number)
print("%%o 八進制 %o" % 102)
print("%%x16進制 %x" % 102)
#print("16進制 %X" % 102)
print("%%e 自然常數 e進制: %e" % number)
#print("%E" % number)
print("%%f 浮點數 %f" % number)
print("%%g 靈活的有效顯示:%g" % number) #保證顯示6微有效數字的前提下,靈活的選擇小數方式,或者科學計數法
#print("%G" % number)
print("%%g 靈活的有效顯示:%g" % (number*10001)) #保證顯示6微有效數字的前提下,靈活的選擇小數方式,或者科學計數法
#下面兩種寫法需要注意執行順序
#print("%g" % number*10001) #注意這種寫法
#print("%g" % number**10) #注意這種寫法
讀者可以直接復制運行代碼,學委補充了運行效果圖:

這里比較特殊的是‘%u’無符號整型的展示,正負數并無區別,
那是肯定的,無符號整型跟有符號整型是表示數的兩種手段,
但是無符號的比有符號多了一個位來放數字,所以范圍更大,
上面這段題外話,小白稍微看看或者跳過,我們繼續看看其他格式化方式,
第二種占位符格式化
跟上面稍微區別就是我們會看到一下明顯的下標,
{0}, {1}, … {n}
想要留幾個替換位,就放幾個{}括起來,但要求必須給到n個引數,更多資訊參考https://docs.python.org/3/library/string.html
這個非常簡單直接,我們看看代碼:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/10/30 10:13 上午
# @Author : LeiXueWei
# @CSDN/Juejin/Wechat: 雷學委
# @XueWeiTag: CodingDemo
# @File : string_format1.py
# @Project : hello
import sys
slogan = "持續學習持續開發"
author = "雷學委"
text = "{0}, {1}".format(slogan, author)
print("text= %s" % text)
關鍵字格式化
非常好理解就是類似{}一對大括弧中間為待替換的內容,
這個非常簡單直接,我們看看代碼:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/10/30 10:13 上午
# @Author : LeiXueWei
# @CSDN/Juejin/Wechat: 雷學委
# @XueWeiTag: CodingDemo
# @File : string_format2.py
# @Project : hello
import sys
slogan = "持續學習持續開發"
author = "雷學委"
text = f"{slogan} , {author}"
print("text= %s" % text)
運行效果如下:

從這里看,關鍵字格式化比較友好!
Next
Python生態中肯定有很多格式化的庫,不一一涉及了,
讀者可以參照這兩種思想定制開發自己的替換格式化方案發布為庫,這里學委要推薦一下這篇開發python庫的文章:
保姆級教程帶你開發優質的Python庫之下篇【種子專案】
下一篇會介紹一寫字串操作其他函式,
對了,喜歡Python的朋友,請關注學委的 Python基礎專欄 or Python入門到精通大專欄
持續學習持續開發,我是雷學委!
編程很有趣,關鍵是把技術搞透徹講明白,
歡迎關注微信,點贊支持收藏!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/348391.html
標籤:python
上一篇:Python3,7行代碼自動完成手淘喵糖任務,再也不用點點點了。
下一篇:【演算法學習】1108. IP 地址無效化(java / c / c++ / python / go / rust)
