百分号%在python中的用法_百分号在python中代表什么
百分号%在python中主要是两个作用:数学运算符号和格式化输出。下文分别详细说明。
1、数学运算符号,求余数
在整数的除法中,有能整除与不能整除两种情况。所谓余数,余数指整数除法中被除数未被除尽部分,python中余数的正负符号和被除数一致,如下例所示:
print(5%2) #1
print((-5)%(-2)) #-1
print(-5%2) #1
print(5%(-2)) #-1
2、格式化输出
在python中,内置对字符串进行格式化的操作%,下面是%格式符的表达式:
%[(name)][flags][width].[precision]typecode
表达式的解释如下:
%:格式化的起始标识
(name):可选,映射的key,比如字典
flag:可选,格式化操作符辅助符,含义分别为下表格所示
符号 | 含义 |
# | 在八进制数前面显示零(0),在十六进制前面显示"0x"或者"0X"(取决于用的是"x"还是"X") |
0 | 显示的数字前面填充"0"而不是默认的空格 |
+ | 向右对齐,并在正数前面显示加号(+) |
- | 向左对齐 |
' ' | 正数前留空格 |
width:可选,最小字段宽度。如果指定为“*”,则默认需要有一个包含2个参数的元组,第一个参数是最小字段宽度,第二个字段为值。
.precision:可选,小数点位数,浮点数时生效。如果指定为“.*”,则默认需要有一个包含2个参数的元组,第一个参数是最小字段宽度,第二个字段为值。
typecode:转换类型,各字符含义如下:
字符 | 含义 |
d/i/u | 十进制整型 |
o | 八进制 |
x/X | 十六进制,大小写区分 |
e/E | 转成科学计数法(e / E控制输出e / E) |
f/F | 十进制浮点型 |
c | 单个字符 |
s | 字符串 |
下方为代码实例:
neg_num=-34
pos_num=56
print('%d,%i,%u都是一样'%(neg_num,neg_num,neg_num)) #-34,-34,-34都是一样
print('%d,%i,%u都是一样'%(pos_num,pos_num,pos_num))#56,56,56都是一样
print('%d用八进制是%o,加入\'#\'后就是%#o'%(pos_num,pos_num,pos_num)) #56用八进制是70,加入'#'后就是0o70
print('%d用十六进制是%x,加入\'#\'后就是%#x'%(pos_num,pos_num,pos_num)) #56用十六进制是38,加入'#'后就是0x38
print('%d用科学计数法是%e,保留3位小数精度,就是%.3e'%(pos_num,pos_num,pos_num)) #56用科学计数法是5.600000e+01,保留3位小数精度,就是5.600e+01
print('%d用浮点数表示是%f,保留3位小数为%.3f'%(pos_num,pos_num,pos_num)) #56用浮点数表示是56.000000,保留3位小数为56.000
alpha='a'
st='good'
print('%c'%65)#A,整型会转换成ASCII值
print('%c'%alpha)#a
print('%s'%st)#good
复合型代码实例
num=[23,98,-345,-34]
print('限制最小宽度')
for i in num:
print('%5d,'%i)
print('加上+号,右对齐,整数加+号')
for i in num:
print('%+5d,'%i)
print('加上-号,左对齐')
for i in num:
print('%-5d,'%i)
print('加上0,补齐位数')
for i in num:
print('%05d,'%i)
代码执行后输出结果如下:
#输出
限制最小宽度
23,
98,
-345,
-34,
加上+号,右对齐,整数加+号
+23,
+98,
-345,
-34,
加上-号,左对齐
23 ,
98 ,
-345 ,
-34 ,
加上0,补齐位数
00023,
00098,
-0345,
-0034,