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(["hello",2018], "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) #居右显示
''
>>> "{:^10},{:<10.2f}".format("aa", 123.456) #"aa"居左显示,宽度10;123.456居左显示,宽度10,保留两位小数
' aa ,123.46 '

python 字符串的格式化的更多相关文章

  1. Python字符串与格式化的一点用法

    #python的基本语法网上已经有很多详细的解释了,写在这里方便自己记忆一些 1.python于C语言不同的是,python没有字符的概念,所谓的字符就是长度为1的字符串,使用切片或者索引同样可以对字 ...

  2. python - 字符串的格式化输出

    # -*- coding:utf-8 -*- '''@project: jiaxy@author: Jimmy@file: study_2_str.py@ide: PyCharm Community ...

  3. Python字符串类型格式化之format方法

    python字符串格式化一般使用 format() 方法,用法如下: <模板字符串>.format(<逗号分割的参数>) 其中模板字符串中可以由一个或多个 {} 组成的 槽 , ...

  4. 010.Python字符串的格式化

    字符串的格式化 顺序传参 索引传参 关键字传参 容器类型传参(列表和元组) {}相当于占位符 1 顺序传参 strvar = "他{}牺牲自己,{}出卖组织" res = strv ...

  5. python字符串的格式化

    # -*- coding:utf-8 -*- """ @Author:janson @Date:2018/8/1 @File:StrFormat.py "&qu ...

  6. Python字符串的格式化,看这一篇就够了

    相信很多人在格式化字符串的时候都用"%s" % v的语法,PEP 3101 提出一种更先进的格式化方法 str.format() 并成为 Python 3 的标准用来替换旧的 %s ...

  7. 『无为则无心』Python基础 — 10、Python字符串的格式化输出

    目录 1.什么是格式化输出 2.Python格式化输出的五种方式 方式一:字符串之间用+号拼接 方式二:print()函数可同时输出多个字符串 方式三:占位符方式 方式四:f格式化方式(推荐) 方式五 ...

  8. python字符串的格式化输出

    很多时候我们在打印输入内容时希望有简单格式而不是拼接 一般做法: name = input("name:").strip() age = input("age:" ...

  9. 【Python④】python恼人的字符串,格式化输出

    恼人的字符串 计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理.由于计算机是美国人发明的,因此,最早只有127个字母被编码到计算机里,也就是大小写英文字母.数字和一些符号,这个编码 ...

随机推荐

  1. 浅谈HTTP中Get与Post的区别_转

    可参考:HTTP请求中POST与GET的区别 Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE.URL全称是资源描述符,我们可以这样认为:一个UR ...

  2. time函数

    time函数 time #include<time.h> time_t time(time_t *t); typdef long int time_t; time() returns th ...

  3. RabbitMQ之主题(Topic)【译】

    在上一节中,我们改进了我们的日志系统,替换使用fanout exchange仅仅能广播消息,使得选择性的接收日志成为可能. 虽然使用direct exchange改进了我们的系统,但是它仍然由他的局限 ...

  4. librtmp将本地FLV文件发布到RTMP流媒体服务器

    没有用到ffmpeg库 可以将本地FLV文件发布到RTMP流媒体服务器 使用librtmp发布RTMP流可以使用两种API:RTMP_SendPacket()和RTMP_Write(). 使用RTMP ...

  5. Hadoop中HDFS工作原理

    转自:http://blog.csdn.net/sdlyjzh/article/details/28876385 Hadoop其实并不是一个产品,而是一些独立模块的组合.主要有分布式文件系统HDFS和 ...

  6. JavaBeans wiki 摘译

    20161013最新提示:既然来到这了,为什么不看看 JavaBeans 官方文档学习 ? 鉴于Spring的beans包遵守JavaBean specs,有必要认真研究下JavaBean specs ...

  7. SSM,即Spring+SpringMVC+MyBatis三个开源框架的整合框架集。

    SSM(Spring+SpringMVC+MyBatis)框架集由Spring.SpringMVC.MyBatis三个开源框架整合而成,常作为数据源较简单的web项目的框架. 其中spring是一个轻 ...

  8. java----监听器的作用

    Web监听器导图详解   监听器是JAVA Web开发中很重要的内容,其中涉及到的知识,可以参考下面导图: Web监听器 1 什么是web监听器? web监听器是一种Servlet中的特殊的类,它们能 ...

  9. VB.NET多线程入门

    近期项目中遇到了一个处理速度慢阻塞用户界面操作的问题,因此想用多线程来解决. 在处理数据的循环中,新建线程,在新建的线程中处理数据.多线程同一时候处理数据,以此来达到加速的目的,使用户界面操作变得流畅 ...

  10. shell 中各种符号的含义

    http://yesjavame.iteye.com/blog/1062405 http://blog.csdn.net/taiyang1987912/article/details/39551385