百分号%在python中的用法_百分号在python中代表什么

liftword5个月前 (02-14)技术文章31

百分号%在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,

相关文章

在 Python 中如何将字符串转换为整数

类似于内置的 str() 方法,Python 语言中有一个很好用的 int() 方法,可以将字符串对象作为参数,并返回一个整数。用法示例:# Here age is a string object a...

python:给1个整数,你怎么判断是否等于2的幂次方?

最近在某xxxx网站上刷到一个比较简单题目,题目要求不使用循环和递归来实现检查1个整数是否等于2的幂次方,题目如下:题目的答案如下:def isPowerofTwo(n): z = bin(n)[2...

18、零基础Python到全栈-小整数池的概念

前面我们说了,只要是赋值操作,产生新的值的时候,都会申请一块内存空间。只要申请了新的内存空间,他的内存地址就会不一样,id也会不一样。现在我定义a=10,b=10,按照我们前面分析的,这两串代码一运行...