Python中的%符號是一種格式化輸出的方式,可以把不同類型的數據輸出成一個字符串,常見的類型有字符串、整數、浮點數、元組等。在這篇文章里,我們將從多個方面來闡述%的用法,幫助你更好地理解和使用這個特殊符號。
一、格式化字符串
在Python中,%最常見的用法就是格式化字符串。通過在字符串中插入特定的佔位符,再使用%將需要輸出的數據傳入,即可生成一個格式化後的字符串。
name = "Tom"
age = 25
txt = "My name is %s, and I am %d years old." % (name, age)
print(txt)
在上面的代碼中,%s用於插入字符串類型的數據,%d用於插入整數類型的數據。在使用%後面,需要傳入一個元組或字典類型的數據,用於替換字符串中的佔位符。這裡我們將name和age分別放到一個元組中,再使用%傳入。
輸出結果如下:
My name is Tom, and I am 25 years old.
如果需要輸出的數據類型更多,可以使用多個佔位符,把需要輸出的數據放在一個元組或字典中,再使用%進行傳遞。
二、格式化數字
在Python中,%可以用來格式化各種類型的數字,比如整數、浮點數、百分數、小數點數等。
1. 格式化整數
num = 123
txt = "The number is %d" % num
print(txt)
在上面的代碼中,%d用于格式化整數類型的數字,輸出結果如下:
The number is 123
2. 格式化浮點數
pi = 3.1415926
txt = "The value of pi is %.2f" % pi
print(txt)
在上面的代碼中,%.2f用于格式化浮點數類型的數字,並保留2位小數,輸出結果如下:
The value of pi is 3.14
3. 格式化百分數
dec = 0.25
txt = "The percentage is %.2f%%" % (dec * 100)
print(txt)
在上面的代碼中,%.2f用于格式化浮點數類型的數字,並保留2位小數,%%用於在字符串中輸出百分號,輸出結果如下:
The percentage is 25.00%
4. 格式化科學計數法
num = 12345
txt = "The number is %.2e" % num
print(txt)
在上面的代碼中,%.2e用于格式化科學計數法,並保留2位小數,輸出結果如下:
The number is 1.23e+04
三、格式化時間
在Python中,%還可以用來格式化時間。常見的時間格式有年月日、時分秒等。Python通過在佔位符前添加不同的字符來表示不同的時間格式,比如%Y表示四位數的年份,%m表示月份,%d表示日期等。
import datetime
today = datetime.datetime.today()
txt = "Today is %02d/%02d/%d" % (today.month, today.day, today.year)
print(txt)
在上面的代碼中,%02d表示輸出兩位數的佔位符,並在不足兩位時前面補0,輸出結果如下:
Today is 07/05/2022
除了上面的時間格式,Python還支持很多其他的時間格式,可以根據需要進行查閱。
四、進制轉換
在Python中,%還可以用於進制轉換。常見的進制有二進制、八進制、十六進制等。Python中使用不同的佔位符來表示不同的進制,比如%b表示二進制,%o表示八進制,%x表示十六進制等。
1. 十進制轉二進制
num = 123
txt = "The binary number is %d" % num
print(txt)
在上面的代碼中,%d用于格式化十進制數,並把它轉換為二進制數,輸出結果如下:
The binary number is 123
2. 十進制轉八進制
num = 123
txt = "The octal number is %o" % num
print(txt)
在上面的代碼中,%o用于格式化十進制數,並把它轉換為八進制數,輸出結果如下:
The octal number is 173
3. 十進制轉十六進制
num = 123
txt = "The hexadecimal number is %x" % num
print(txt)
在上面的代碼中,%x用于格式化十進制數,並把它轉換為十六進制數,輸出結果如下:
The hexadecimal number is 7b
五、結語
在本文中,我們從格式化字符串、格式化數字、格式化時間、進制轉換四個方面詳細闡述了%在Python中的用法,希望對大家有所幫助。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/193309.html