Python通過%操作符進(jìn)行取余運(yùn)算與字符串格式化的深度解析
前言
在 Python 中,百分號(hào) % 是一個(gè)多功能的操作符,主要有兩種核心用法:取余運(yùn)算(模運(yùn)算)和字符串格式化。本文將詳細(xì)介紹這兩種用法及其實(shí)際應(yīng)用場(chǎng)景。
一、取余運(yùn)算(模運(yùn)算)
% 作為取余運(yùn)算符時(shí),用于計(jì)算兩個(gè)數(shù)相除后的余數(shù),語(yǔ)法為 a % b,表示計(jì)算 a 除以 b 后的余數(shù)。
1. 基本用法
# 正數(shù)取余 print(7 % 3) # 輸出: 1(7 = 3×2 + 1) print(10 % 4) # 輸出: 2(10 = 4×2 + 2) print(8 % 2) # 輸出: 0(整除時(shí)余數(shù)為0) # 負(fù)數(shù)取余 print(-7 % 3) # 輸出: 2(-7 = 3×(-3) + 2) print(7 % -3) # 輸出: -2(7 = (-3)×(-3) + (-2)) print(-7 % -3) # 輸出: -1(-7 = (-3)×2 + (-1))
2. 關(guān)鍵特性
- 結(jié)果的符號(hào)與除數(shù)(第二個(gè)操作數(shù)) 保持一致。
- 滿足恒等式:
a = (a // b) * b + (a % b)(商×除數(shù) + 余數(shù) = 被除數(shù))。
a, b = 17, 5 print((a // b) * b + (a % b) == a) # 輸出: True(3×5 + 2 = 17)
3. 實(shí)際應(yīng)用場(chǎng)景
判斷奇偶性:通過 n % 2 判斷結(jié)果是 0(偶數(shù))還是 1(奇數(shù))。
def is_even(n):
return n % 2 == 0
print(is_even(4)) # 輸出: True
print(is_even(7)) # 輸出: False
判斷整除性:若 a % b == 0,則 a 能被 b 整除。
def is_divisible(a, b):
return a % b == 0
print(is_divisible(10, 5)) # 輸出: True
print(is_divisible(7, 3)) # 輸出: False
循環(huán)取值:在固定范圍內(nèi)循環(huán)獲取索引(如列表循環(huán)訪問)。
colors = ["紅", "綠", "藍(lán)"]
for i in range(5):
print(colors[i % 3]) # 循環(huán)輸出: 紅、綠、藍(lán)、紅、綠
時(shí)間轉(zhuǎn)換:例如將總秒數(shù)轉(zhuǎn)換為“分:秒”格式。
total_seconds = 135
minutes = total_seconds // 60 # 2
seconds = total_seconds % 60 # 15
print(f"{minutes}:{seconds}") # 輸出: 2:15
二、字符串格式化
% 作為格式化操作符時(shí),用于將變量插入字符串中,語(yǔ)法為 格式字符串 % 變量,類似其他語(yǔ)言中的“占位符”功能。
1. 基本用法
格式字符串中用 % 開頭的占位符表示需要替換的位置,常見占位符如下:
%s:字符串(可接收任何類型,自動(dòng)轉(zhuǎn)換為字符串)%d:整數(shù)%f:浮點(diǎn)數(shù)%x:十六進(jìn)制整數(shù)(小寫)%X:十六進(jìn)制整數(shù)(大寫)
name = "Alice"
age = 30
print("姓名: %s, 年齡: %d" % (name, age)) # 輸出: 姓名: Alice, 年齡: 30
pi = 3.1415926
print("圓周率: %.2f" % pi) # 輸出: 圓周率: 3.14(保留2位小數(shù))
num = 255
print("十六進(jìn)制: %x" % num) # 輸出: 十六進(jìn)制: ff
2. 高級(jí)格式化技巧
指定寬度:通過 %Nd(整數(shù))或 %N.Mf(浮點(diǎn)數(shù))控制輸出寬度和精度。
print("數(shù)字: %5d" % 3) # 輸出: 數(shù)字: 3(占5位,右對(duì)齊)
print("浮點(diǎn)數(shù): %8.2f" % pi) # 輸出: 浮點(diǎn)數(shù): 3.14(總寬度8,保留2位小數(shù))
左對(duì)齊:在寬度前加 - 實(shí)現(xiàn)左對(duì)齊。
print("左對(duì)齊: %-5d" % 3) # 輸出: 左對(duì)齊: 3
字典格式化:使用 %(key)s 從字典中取值,增強(qiáng)可讀性。
user = {"name": "Bob", "score": 95}
print("姓名: %(name)s, 分?jǐn)?shù): %(score)d" % user) # 輸出: 姓名: Bob, 分?jǐn)?shù): 95
3. 注意事項(xiàng)
- 占位符數(shù)量需與后面的變量數(shù)量一致,否則會(huì)拋出
TypeError。 - 雖然 Python 3.6+ 引入了更強(qiáng)大的 f-字符串(如
f"姓名: {name}"),但%格式化在舊代碼中仍常見,需了解其用法。
三、總結(jié)
% 操作符在 Python 中有兩種核心用法:
- 取余運(yùn)算:計(jì)算除法余數(shù),用于奇偶判斷、整除校驗(yàn)、循環(huán)取值等場(chǎng)景,結(jié)果符號(hào)與除數(shù)一致。
- 字符串格式化:通過占位符替換變量,支持多種數(shù)據(jù)類型和格式控制,是傳統(tǒng)的字符串拼接方式。
根據(jù)場(chǎng)景靈活使用 % 的兩種功能,能讓代碼更簡(jiǎn)潔、高效。在現(xiàn)代 Python 開發(fā)中,取余運(yùn)算仍被廣泛使用,而字符串格式化則可根據(jù)需求選擇 %、f-字符串或 str.format()。
到此這篇關(guān)于Python通過%操作符進(jìn)行取余運(yùn)算與字符串格式化的深度解析的文章就介紹到這了,更多相關(guān)Python操作符%內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
virtualenv實(shí)現(xiàn)多個(gè)版本Python共存
virtualenv用于創(chuàng)建獨(dú)立的Python環(huán)境,多個(gè)Python相互獨(dú)立,互不影響,它能夠:1. 在沒有權(quán)限的情況下安裝新套件 2. 不同應(yīng)用可以使用不同的套件版本 3. 套件升級(jí)不影響其他應(yīng)用2017-08-08
python正則表達(dá)中的re庫(kù)常用方法總結(jié)
這篇文章主要介紹了python正則表達(dá)中的re庫(kù)常用方法總結(jié)文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,感興趣的小伙伴可以參考一下2022-08-08
一文詳解Python中實(shí)現(xiàn)單例模式的幾種常見方式
這篇文章主要為大家介紹了Python中實(shí)現(xiàn)單例模式的幾種常見方式示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03
Django創(chuàng)建一個(gè)后臺(tái)的基本步驟記錄
這篇文章主要給大家介紹了關(guān)于Django創(chuàng)建一個(gè)后臺(tái)的基本步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10
Python Django搭建文件下載服務(wù)器的實(shí)現(xiàn)
這篇文章主要介紹了Python Django搭建文件下載服務(wù)器的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-05-05
Python使用Pendulum優(yōu)雅處理日期與時(shí)間
在日常開發(fā)中,日期和時(shí)間的處理一直是讓人頭疼的事情,本文將全面介紹?pendulum?的特點(diǎn),用法以及典型應(yīng)用場(chǎng)景,希望可以幫助大家在實(shí)際項(xiàng)目中優(yōu)雅地處理時(shí)間邏輯2025-06-06
Python cookbook(數(shù)據(jù)結(jié)構(gòu)與算法)字典相關(guān)計(jì)算問題示例
這篇文章主要介紹了Python字典相關(guān)計(jì)算問題,結(jié)合實(shí)例形式總結(jié)分析了Python字典相關(guān)的最小值、最大值、排序等操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2018-02-02

