Python中的print()?函數(shù)和格式化操作方法
一、print() 函數(shù)基礎(chǔ)
?print()? 是 Python 中最基礎(chǔ)也是最常用的輸出函數(shù),但它的功能遠(yuǎn)不止簡單的文本輸出。
核心語法:
print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
關(guān)鍵參數(shù)
sep 參數(shù):定義多個輸出對象之間的分隔符,默認(rèn)為空格
print("a", "b", "c", sep="-") # 輸出:a-b-c
print(2024, 9, 30, sep="/") # 輸出:2024/9/30end 參數(shù):指定輸出結(jié)束時的字符,默認(rèn)為換行符
print("Hello", end="!")
print("World") # 輸出:Hello!Worldobjects:可以接受任意數(shù)量的輸出對象,包括字符串、數(shù)字、列表等
name = "Alice"
age = 25
print("姓名:", name, "年齡:", age) # 輸出:姓名: Alice 年齡: 25二、三大格式化輸出方法
1、百分號(%)格式化:傳統(tǒng)方法
這是 Python 最早的字符串格式化方法,雖然現(xiàn)在有更現(xiàn)代的選擇,但在維護(hù)舊代碼時仍然常見。
基本語法:
print("格式字符串" % (變量1, 變量2, ...))常用格式符號:
| 格式符號 | 功能說明 | 示例 | 輸出結(jié)果 |
|---|---|---|---|
| %s | 字符串(萬能匹配) | ?"name: %s" % "XY"? | name: XY |
| %d | 十進(jìn)制整數(shù) | ?"age: %d" % 18? | age: 18 |
| %f | 浮點數(shù) | ?"weight: %.2f" % 60.5? | weight: 60.50 |
| %x | 十六進(jìn)制整數(shù) | ?"hex: %x" % 255? | hex: ff |
還可以加上一些字符來控制輸出寬度等格式化需求(詳情見下面的format方法)
print("age: %08d" % 18) # 占8位,不足補0 → age: 00000018
print("num: %8.3f" % 18) # 占8位,小數(shù)3位 → num: 18.0002、 format() 方法:通用
?format()? 方法提供了更強大、更靈活的格式化功能,是 Python 2.6 及以上版本的推薦選擇。
基礎(chǔ)用法:在字符串里需要替換的位置加上{},在字符串后加上.format()?,在format括號里加上要替換的具體值。
# 按默認(rèn)順序
print("name: {}, age: {}".format("XY", 18))
# 按位置索引,位置索引默認(rèn)從0開始
print("age: {1}, name: {0}".format("XY", 18))
# 按名稱匹配
print("name: {n}, age: {a}".format(n="XY", a=18))格式化技巧:

- 引導(dǎo)符“:”起手,表示要對{}?里的內(nèi)容進(jìn)行格式化。
- 填充:在輸出的位數(shù)不夠時,用指定的符號填充,比如'*'、'-'、'='、'+'?等。
- 對齊:對指定輸出的內(nèi)容進(jìn)行對齊輸出。
- 寬度:指定輸出的字符串寬度,即在控制臺輸出的長度。
注意,必須嚴(yán)格按照上面圖片的順序進(jìn)行格式化。(不需要的格式化操作則跳過)
pi = 3.14159
# 保留2位小數(shù)
print("pi: {:.2f}".format(pi)) # pi: 3.14
# 百分比格式
print("rate: {:.1%}".format(0.85)) # rate: 85.0%
# 千分位分隔
print("money: {:,}".format(1234567)) # money: 1,234,567
# 對齊填充
print("title: {:*^20}".format("Python")) # title: *******Python********簡單例題1:
鍵盤輸入字符串s,按要求把輸出到屏幕。
格式要求,寬度為20個字符,等號字符“=”填充,居中對齊。如果輸入字符串超過20位,則全部輸出。
例如:鍵盤輸入字符串s為“PYTHON”,屏幕輸出 =======PYTHON=======
s = input("請輸入一個字符串:")
print("{:=^20}".format(s)) #按照順序填入需要的格式化,填充、對齊、寬度。簡單例題2:
鍵盤輸入正整數(shù)n,按要求把輸出到屏幕.
格式要求,寬度為20個字符,字符“-”填充,右對齊,帶千位分隔符。如果輸入正整數(shù)超過20位,則按照真實長度輸出。
例如:鍵盤輸入正整數(shù)n為1234, 屏幕輸出:---------------1,234
n = eval(input("請輸入正整數(shù):")) #注意,input()得到的結(jié)果是一個字符串,需要轉(zhuǎn)化成整數(shù)
print("{:->20,}".format(n)) #按照順序填入需要的格式化,填充、對齊、寬度、千位符。3、 f-string:最優(yōu)選擇
f-string(格式化字符串字面值)是 Python 3.6 引入的新特性,具有簡潔的語法和優(yōu)異的性能。
基本語法:在字符串前加 f 或 F,在大括號中直接嵌入變量或表達(dá)式
name = "XY"
age = 18
print(f"name: {name}, age: {age}") # name: XY, age: 18進(jìn)階:
# 表達(dá)式計算
print(f"1+1 = {1+1}") # 1+1 = 2
# 進(jìn)制轉(zhuǎn)換
print(f"binary: {age:b}, octal: {age:o}") # binary: 10010, octal: 22
# 數(shù)值格式化
print(f"weight: {60.5:.1f}kg") # weight: 60.5kg
# 調(diào)用函數(shù)和方法
text = "hello"
print(f"大寫: {text.upper()}") # 大寫: HELLO三、避坑點
在學(xué)習(xí)和使用格式化輸出時,常會遇到一些典型問題:
1、類型不匹配
# ? 錯誤示例
print("%d" % 3.14) # 報錯:%d 不能直接接收浮點數(shù)。%d接收整數(shù),%f接收浮點數(shù)。
# ? 正確做法
print("%d" % int(3.14)) # 輸出:3
print("%.0f" % 3.14) # 輸出:32、占位符數(shù)量不匹配
# ? 錯誤示例
"{} {}".format("a") # 報錯:占位符數(shù)量多于參數(shù)
# ? 正確做法
"{} {}".format("a", "b") # 輸出:a b3、f-string 前綴遺漏
# ? 錯誤示例
name = "Alice"
print("name: {name}") # 輸出:name: {name}(沒有變量替換)
# ? 正確做法
print(f"name: {name}") # 輸出:name: Alice4、轉(zhuǎn)義大括號
當(dāng)需要輸出字面的大括號時:{{}}?,輸出的是{}
print(f"{{name: {name}}}") # 輸出:{name: Alice}四、方法選擇
| 方法 | 優(yōu)勢 | 劣勢 | 適用場景 |
|---|---|---|---|
| 百分號格式化 | 兼容舊版本 | 功能有限,易出錯 | 維護(hù)舊代碼 |
| format() 方法 | 功能全面,兼容性好 | 語法相對繁瑣 | 考試,跨版本項目 |
| f-string | 簡潔高效,支持表達(dá)式 | 僅支持 Python 3.6+ | 新項目首選,日常開發(fā) |
- 新項目:選擇 f-string,它的簡潔性和性能都是最佳的。
- 維護(hù)舊代碼:根據(jù)原有代碼風(fēng)格選擇相應(yīng)方法。
- 兼容性要求高:使用 format() 方法,它在 Python 2.6+ 和 3.x 中都有良好支持。
五、實用技巧
1. 調(diào)試:快速查看變量
# 在變量名前后顯示值,便于調(diào)試
value = 42
print(f"{value = }") # 輸出:value = 422. 多行字符串格式化
name = "Bob"
age = 30
message = f"""
個人信息:
姓名:{name}
年齡:{age}
"""
print(message)3. 條件表達(dá)式在 f-string 中的應(yīng)用
score = 85
print(f"成績:{score},{'及格' if score >= 60 else '不及格'}")(1)變量賦值:
- 創(chuàng)建一個名為 score? 的變量
- 將整數(shù)值 85? 賦給該變量
- 此時內(nèi)存中 score? 的值為 85
(2)f-string 解析,分為兩個部分:
第一部分:{score}?
- 識別到花括號 {}?
- 查找變量 score? 的值
- 將 score? 的值 85? 轉(zhuǎn)換為字符串并插入到相應(yīng)位置{}?
第二部分:{'及格' if score >= 60 else '不及格'}?
- 這是一個?條件表達(dá)式?(三元運算符)
- 語法格式:值1 if 條件 else 值2?
(3)條件表達(dá)式的執(zhí)行:
- 條件:score >= 60? → 85 >= 60? → True?
- 選擇結(jié)果:由于條件為 True?,選擇 if? 前面的值 '及格'?
- 忽略:else? 后面的 '不及格'? 不會被使用
(4)所有的{}?都替換成功,輸出到控制臺。
print("成績:85,及格") #成績:85,及格六、結(jié)語
?print()? 函數(shù)和字符串格式化是每個 Python 開發(fā)者必須掌握的基礎(chǔ)技能。從簡單的 %? 操作符到強大的 f-string,Python 一直在進(jìn)化,讓我們的編碼工作變得更加愉快和高效。
無論你選擇哪種方法,最重要的是保持一致性。在同一個項目中盡量使用同一種格式化風(fēng)格,這樣代碼會更易讀、更易維護(hù)。
你現(xiàn)在更喜歡用哪種格式化方法呢?在實際項目中遇到過什么有趣的格式化場景?歡迎在評論區(qū)分享你的經(jīng)驗!
到此這篇關(guān)于Python中的print() 函數(shù)和格式化操作的文章就介紹到這了,更多相關(guān)Python print() 函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python學(xué)習(xí)筆記之For循環(huán)用法詳解
這篇文章主要介紹了Python學(xué)習(xí)筆記之For循環(huán)用法,結(jié)合實例形式詳細(xì)分析了Python for循環(huán)的功能、原理、用法及相關(guān)操作注意事項,需要的朋友可以參考下2019-08-08
python 函數(shù)嵌套及多函數(shù)共同運行知識點講解
在本篇文章里小編給各位整理的是一篇關(guān)于python 函數(shù)嵌套及多函數(shù)共同運行知識點講解,需要的朋友們可以學(xué)習(xí)下。2020-03-03

