str= '@SES/%i/'%-1
print str
str1='@SES/%i/'%1
print str1
str2='@SES/%i/'%2
print str2
打印出的结果:
@SES/-1/
@SES/1/
@SES/2/
一开始没有明白为什么会是这样的结果 :
格式化操作(%)
python的字符串格式化操作跟C语言printf()函数的字符串格式化很类似,并且支持所有的printf()格式化操作。
%c | 转换成字符(ASCII 码值,或者长度为一的字符串) |
%r | 优先用 repr()函数进行字符串转换 |
%s | 优先用 str()函数进行字符串转换 |
%d / %i | 转成有符号十进制数 |
%ub | 转成无符号十进制数 |
%ob | 转成无符号八进制数 |
%xb/%Xb | (Unsigned)转成无符号十六进制数(x/X 代表转换后的十六进制字符的大小写) |
%e/%E | 转成科学计数法(e/E 控制输出 e/E) |
%f/%F | 转成浮点数(小数部分自然截断) |
%g/%G | %e 和%f/%E 和%F 的简写 |
%% | 输出% |
例如: >>>%r %('ABCD123')
'ABCD123'
>>>%s %('Test')
'Test'
python格式化支持两种格式的输入参数:元组(常用)和字典。
>>>'%s%d' %('zhanghong',56)
'zhanghong56'
>>>'%(name)s%(age)d' %{'name':'zhanghong','age':56}
zhanghong56
Python 编码的问题请查看下面的连接