在Python中的格式化

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 编码的问题请查看下面的连接

 http://www.cnblogs.com/huxi/archive/2010/12/05/1897271.html
原文地址:https://www.cnblogs.com/tiantiansunny/p/3686032.html