Python 字符串的格式化两种办法
发布时间:2021-11-12 15:43:59 所属栏目:教程 来源:互联网
导读:Python字符串的格式化分为两种:1)% 方式 2)str.format() 方式。 str.format() 是比 % 较新的方式, 大多数的 Python 代码仍然使用 % 操作符。但最终会被str.format()代替,推荐使用str.format() 1、% 方式 1)用法 %[(name)][flags][width].[precision]ty
Python字符串的格式化分为两种:1)% 方式 2)str.format() 方式。 str.format() 是比 % 较新的方式, 大多数的 Python 代码仍然使用 % 操作符。但最终会被str.format()代替,推荐使用str.format() 1、% 方式 1)用法 %[(name)][flags][width].[precision]typecode 2)说明 (name) 可选,用于选择指定的key flags 可选,主要用于数字类型 width 可选,显示宽度,width大于显示的长度用空格填充,小于则原样输出 .precision 可选,,显示长度,字符类型:.precision大于显示长度原样输出,小于则显示前precision位字符。数字类型:小数点后保留的位数 typecode 必选,字符串格式化符号 flags 的选项有: + 右对齐;在正数前面显示加号“+” - 左对齐 <sp> 右对齐;正数前用空格填充 0 显示的数字前面填充'0' # 在八进制数前面显示零('0'),在十六进制前面显示'0x'或者'0X'(取决于用的是%x或%X) typecode 符串格式化符号: c 格式化字符及其ASCII码 s 格式化字符串 d 格式化整数 u 格式化无符号整型 o 格式化无符号八进制数 x 格式化无符号十六进制数 X 格式化无符号十六进制数(大写) f 格式化浮点数字,可指定小数点后的精度(默认保留6位小数) e 用科学计数法格式化浮点数 E 作用同%e,用科学计数法格式化浮点数 g %f和%e的简写 G %f和%E的简写 p 十六进制数格式化变量的地址 % 显示一个 "%" 3)实例 >>> "hello %s" % "world" 'hello world' >>> "%s %d" % ("hello world", 2018) 'hello world 2018' >>> "hello %10.2s" % "world" #"world"的显示宽度 10,只显示两位字符 'hello wo' >>> "%(name)s, %(age)d" % {"name":"LaoWang", "age":18} # 通过(name)指定显示的内容 'LaoWang, 18' >>> "%.2f" % 123.456 # 数字类型,保留两位小数(默认四舍五入) '123.46' >>> "%(num).2f" % {"num":123.456} '123.46' 2、str.format() 方式 (可参考PEP 3101) 1)、用法 :[[fill]align][sign][#][0][minimumwidth][.precision][type] 2)、说明 fill [可选] 填充字符,默认为 " " (空格) # [可选] 对于二进制、八进制、十六进制,如果加上#,会显示0b/0o/0x,否则不显示 , [可选] 为数字添加分隔符,如:1,000,000 minimumwidth [可选] 格式化位所占宽度 .precision [可选] 小数位保留精度 type [可选] 格式化类型,与 % 的一样 align [可选] 对齐方式(需配合width使用) < 内容左对齐 > 内容右对齐(默认) = 内容右对齐,将符号放置在填充字符的左侧,且只对数字类型有效 ^ 内容居中 sign [可选] 有无符号数字 + 在正数前面显示加号"+" - 在正数前面不显示加号"+" <ap> 正数前用空格填充 3)实例 >>> "{} {}".format("hello", 2018) 'hello 2018' >>> "{0} {1}".format("hello", 2018) 'hello 2018' >>> l1 = ["hello",2018] >>> "{0} {1}".format(*l1) #通过列表设置参数 'hello 2018' >>> "{0[0]} {0[1]} {1[1]} {1[0]}".format(l1, "abc") #通过索引设置参数 'hello 2018 b a' >>> "{age} {name}".format(name="zhangsan",age=18) '18 zhangsan' >>> d1 = {"name":"zhangsan", "age":18} >>> "{name} {age}".format(**d1) #通过字典设置参数 'zhangsan 18' >>> "{0:-^15}".format("aa") #居中显示,用"-"填充 '------aa-------' >>> "{name:<10}".format(name="aa", age=18) #居左显示 'aa ' >>> "{age:>10}".format(name="aa", age=18) #居右显示 ' 18' >>> "{:^10},{:<10.2f}".format("aa", 123.456) #"aa"居左显示,宽度10;123.456居左显示,宽度10,保留两位小数 ' aa ,123.46 ' (编辑:常州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |