您现在的位置是:网站首页 > 博客日记 >

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