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/n/193309.html