假如想要表达这样一条语句:李明今年十二岁

输出这样一条语句

name = 'LiMing'
age = 12
print( name + 'is' + age + 'years old')
#输出
LiMing is 12

我们可以用“+”链接字符串,虽然可以简单用这种方式工作,但是如果在复杂的情况下,就显得有点牵强。不仅难懂,修改也麻烦。

因此换一种方式,用%来实现:


name = 'LiMing'
age = 12
print('%s is %d years old')
#输出
LiMing is 12

明显看出来简介明了

但是在python3中提供另一种更为简洁优雅的方式,pyhtonic的str.format()

name = 'LiMing'
age = 12
print(' {} is {} years old'.format(name, age))
#输出
LiMing is 12

效果是一样的,但是str.format 既能够用于简单的场景,也能够胜任复杂的字符串替换,而无需繁琐的字符串连接操作。Python 的内置类型 str 和 unicode 均支持使用 str.format() 来格式化字符串。

详细用法

格式化字符串使用花括号 {} 来包围替换字段,也就是待替换的字符串。而未被花括号包围的字符会原封不动地出现在结果中。

使用位置索引

"{}  is  {}  years  old".format("john", "")
"{0} is {1} years old".format("john", "")

上述两种写法是效果是一样的。

使用关键字索引

"Hello, {boy} and {girl}!".format(boy="John", girl="Mary")

通过对象属性

class Person:
def __init__(self,name,age):
self.name,self.age = name,age
def __str__(self):
return 'This guy is {self.name},is {self.age} old'.format(self=self) str(Person('kzc',18))
#输出
'This guy is kzc,is 18 old'

通过下标

 p=['kzc',18]
#输出
'{0[0]},{0[1]}'.format(p)
'kzc,18'

格式限定符

填充与对齐

^、<、>分别是居中、左对齐、右对齐,后面带宽度
:号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充

In [15]: '{:>8}'.format('')
Out[15]: ''
In [16]: '{:0>8}'.format('')
Out[16]: ''
In [17]: '{:a>8}'.format('')
Out[17]: 'aaaaa189'

精度

In [44]: '{:.2f}'.format(321.33345)
Out[44]: '321.33'

其他

主要就是进制了,b、d、o、x分别是二进制、十进制、八进制、十六进制。用,号还能用来做金额的千位分隔符。

In [54]: '{:b}'.format(17)
Out[54]: ''
In [55]: '{:d}'.format(17)
Out[55]: ''
In [56]: '{:o}'.format(17)
Out[56]: ''
In [57]: '{:x}'.format(17)
Out[57]: ''
In [47]: '{:,}'.format(1234567890)
Out[47]: '1,234,567,890'

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

  1. .NET ToString() format格式化字符串(常用)

    前言 我们平常会用到货币数据类型,尤其当我们计算金钱或者算数的时候经常会遇到保留几位小数,而且碰到日期格式问题的时候,经常不知道选择什么样的格式比较合适,下面我找了一部分常用的.NET ToStrin ...

  2. ##C++ format 格式化字符串

    C++ format 格式化字符串实现方式 1. http://stackoverflow.com/questions/2342162/stdstring-formatting-like-sprint ...

  3. %----format 格式化字符串---- 生成器---- 迭代器

    %方式格式化字符串 顺序传参数 o转换8进制x转换十六进制 tp1 = "i am %s" % "alex"tp2 = "i am %s age %d ...

  4. .NET C# Tostring() format 格式化字符串大全

    C 货币 2.5.ToString("C") ¥2.50 D 十进制数 25.ToString("D5") 00025 E 科学型 25000.ToString ...

  5. Python用format格式化字符串

    format是是python2.6新增的一个格式化字符串的方法,相对于老版的%格式方法,它有很多优点. 1.不需要理会数据类型的问题,在%方法中%s只能替代字符串类型 2.单个参数可以多次输出,参数顺 ...

  6. java中实现与.net的format格式化字符串输出

    Java中的格式化字符串 System.out.println(MessageFormat.format("name={0}", "张三")); .net中的格 ...

  7. string.format格式化字符串中转义大括号“{}”

    今天,用Java读取配置文件占位符,使用String.Format(string format,object arg0)方法.以前只知“{0}”为索引占位符(即格式项),与参数列表中的第一个对象相对应 ...

  8. python format格式化字符串

    自python2.6开始,新增了一种格式化字符串的函数str.format() 语法 它通过{}和:来代替%. “映射”示例 通过位置 In [1]: '{0},{1}'.format('kzc',1 ...

  9. String.format() 格式化字符串

    1.几种常见的转换符 转换符 说明 实例 %d 整数类型(十进制) 99 %f 浮点类型 99.99 %s 字符串类型 "mingrisoft" %c 字符类型 'm' %b 布尔 ...

随机推荐

  1. Linux下查看文档指令

    1,cat直接查看 cat /etc/profile 2,more,less分页查看 less  /etc/profile more /etc/profile less -N /etc/profile ...

  2. CI框架入门笔记

    当前(2019-03-22)CodeIgniter 框架的最新版本是 3.1.5,于2017年6月发布,距今快两年了也没有更新,这与 Laravel 的更新速度相比差距太大了.因为确实,它是一个很古老 ...

  3. 05-02 Java 一维数组、内存分配、数组操作

    数组的定义 动态初始化 /* 数组:存储同一种数据类型的多个元素的容器. 定义格式: A:数据类型[] 数组名; B:数据类型 数组名[]; 举例: A:int[] a; 定义一个int类型的数组a变 ...

  4. mvc大对象json传输报错

    public ActionResult GetLargeJsonResult() { return new ContentResult { Content = new JavaScriptSerial ...

  5. c++中char类型字符串拼接以及int类型转换为char类型 && 创建文件夹

    如下所示: #include <iostream> #include <windows.h> #include <cstring> using namespace ...

  6. NIO基础之同步、异步、阻塞、非阻塞

    这里区分几个概念,也是常见但是容易混淆的概念,就是标题中的同步.异步.阻塞.非阻塞. 一.同步与异步 同步与异步,关心的是消息通信的机制.也就是调用者和被调用者之间,消息是如何进行通知的.如果是调用者 ...

  7. Jenkins邮箱设置

    首先需要在系统管理--系统设置中设置系统管理员邮件地址: 然后在邮件通知里设置用户名密码,可以发生测试邮件 这里需要注意的是上面的系统管理员邮件地址必须和用户名一致 还需要注意的是测试邮件可能被当做垃 ...

  8. Android_OnLowMemory和OnTrimMemory

    Android OnLowMemory和OnTrimMemory OnLowMemoryOnLowMemory是Android提供的API,在系统内存不足,所有后台程序(优先级为background的 ...

  9. 解决Oracle死锁问题,及产生的原因

    文章来源:http://www.cnblogs.com/leijh/archive/2012/10/15/2724165.html 最近老是发现应该执行操作数据库的代码时发现执行不了,查了一下发现是数 ...

  10. 轻量级web富文本框——wangEditor使用手册(3)——如何自定义配置菜单 demo

    最新版wangEditor: 配置说明:http://www.wangeditor.com/doc.html demo演示:http://www.wangeditor.com/wangEditor/d ...