python中的百分号%用法总结
作者:YXN-python 阅读量:51 发布日期:2024-01-10
今天来聊聊python百分号有哪些常用的用法
一、取模运算符(求余数)
% 用于计算两个数相除后的余数。
print(5 % 2) # 输出 1(5 ÷ 2 = 2 余 1)
print(10 % 3) # 输出 1(10 ÷ 3 = 3 余 1)
print(-7 % 3) # 输出 2(-7 ÷ 3 = -3 余 2,数学上余数始终非负)
二、字符串格式化(旧式格式化)
% 用于将变量插入字符串,类似 C 语言的 printf 风格。虽然 Python 推荐使用 str.format() 或 f-strings(Python 3.6+),但 % 格式化仍常见于旧代码。
"格式化字符串" % (变量1, 变量2, ...)
常用格式符:
格式符 | 说明 | 示例 |
%s | 格式化字符串 | "Name: %s" % "Alice" → "Name: Alice" |
%d | 格式化十进制整数 | "Age: %d" % 25 → "Age: 25" |
%f | 格式化浮点数字,可指定小数点后的精度 | "Price: %.2f" % 3.1415 → "Price: 3.14" |
%e | 用科学计数法格式化浮点数 | "Value: %e" % 1234567.89 → "Value: 1.234568e+06" |
%E | 作用同%e,但使用大写字母表示科学计数法 | "Value: %E" % 1234567.89 → "Value: 1.234568E+06" |
%g | %f和%e的简写,根据数值大小自动选择合适的格式 | "Value: %g" % 0.0000123 → "Value: 1.23e-05" "Value: %g" % 123 → "Value: 123" |
%u | 格式化无符号整数(在 Python 中不常用,通常使用%d) | "%u" % 255 → "255" |
%o | 八进制整数 | "%o" % 255 → "377" |
%x | 十六进制整数(小写) | "%x" % 255 → "ff" |
%X | 格式化无符号十六进制数(大写) | "%X" % 255 → "FF" |
%% | 转义百分号 | "完成率: %d%%" % 80 → "完成率: 80%" |
示例代码:
# 字符串格式化
print("Name: %s" % "Alice") # 输出: Name: Alice
# 十进制整数格式化
print("Age: %d" % 25) # 输出: Age: 25
# 浮点数格式化,指定小数点后两位
print("Price: %.2f" % 3.1415) # 输出: Price: 3.14
# 科学计数法格式化
print("Value: %e" % 1234567.89) # 输出: Value: 1.234568e+06
print("Value: %E" % 1234567.89) # 输出: Value: 1.234568E+06
# 自动选择格式
print("Value: %g" % 0.0000123) # 输出: Value: 1.23e-05
print("Value: %g" % 123) # 输出: Value: 123
# 无符号整数(Python 中不常用)
print("%u" % 255) # 输出: 255
# 八进制整数
print("%o" % 255) # 输出: 377
# 十六进制整数(小写)
print("%x" % 255) # 输出: ff
# 十六进制整数(大写)
print("%X" % 255) # 输出: FF
高级用法:
##### 1、指定宽度和精度:
# 整数占5位,不足左侧补空格
print("%5d" % 10) # 输出 " 10"
# 浮点数保留2位小数,总宽度8位
print("%8.2f" % 3.1415) # 输出 " 3.14"
##### 2、多个变量:使用元组传递多个值。
name = "Bob"
age = 30
print("Name: %s, Age: %d" % (name, age)) # 输出 "Name: Bob, Age: 30"
##### 3、字典格式化:通过键名映射变量。
data = {"name": "Charlie", "score": 95}
print("Student: %(name)s, Score: %(score)d" % data)
# 输出 "Student: Charlie, Score: 95"
YXN-python
2024-01-10