2009-08-04 283 views
1

我见过%运营商相关的字符串一些Python代码中使用了,如:python中的%运算符是什么?

String = "Value: " % variable 

这是什么意思?它是如何不同的使用:

String = "Value: " + variable 
+3

你的第一行代码缺少的东西: S =“值:%的”%变量 – Agathe 2009-08-04 23:04:56

+0

那么它抛出一个错误,所以这就是为什么我问;) – samoz 2009-08-04 23:11:41

回答

11

其将值插入含有format specifications

string = "number is %d" % 1 

string = "float is %.3f" % 3.1425 

这部作品以类似的方式spintf用C

您可以用两种方式插入多个值:

string = "number %d and float %f" % (1,3.1415) 
string = "number %(mynum)d and float %(myfloat)f" % {'mynum':1,'myfloat':3.1415} 
2

对于字符串%是formatting operator。它也标志着格式说明符的开始。

+运算符将在字符串的末尾串联一个字符串,同时在+的右侧。 %运算符将在格式说明符的位置以格式化的方式替换格式说明符。

对于数字%是模数运算符。 (剩余)

0

根据John E. Grayson在其“Python和Tkinter编程”一书中所述,使用字符串格式化程序而不是串联可以将性能提高至少25%。

一个= X + '' + Y + '' + Z

一个= '%s%S%S' %(X,Y,Z)

慢25%

在Python 3,您也可以这样做:

一个= '{} {} {}' 格式(X,Y,Z)

0

(顺便说一句,如果你没”。 t知道):当不在字符串上使用时,%充当一个模块LO功能

>>> 5 % 5 
0 
>>> 1 % 4 
1