python常用的字符串格式化有哪几种?
常用字符串格式化%和format
皇城PK
Python中格式化字符串目前有两种阵营:%和format,我们应该选择哪种呢?
自从Python2.6引入了format这个格式化字符串的方法之后,我认为%还是format这根本就不算个问题。不信你往下看。
# 定义一个坐标值
c = (250, 250)
# 使用%来格式化
s1 = "敌人坐标:%s" % c
上面的代码很明显会抛出一个如下的TypeError:
TypeError: not all arguments converted during string formatting
像这类格式化的需求我们需要写成下面丑陋的格式才行:
# 定义一个坐标值
c = (250, 250)
# 使用%丑陋的格式化...
s1 = "敌人坐标:%s" % (c,)
而使用format就不会存在上面的问题:
# 定义一个坐标值
c = (250, 250)
# 使用format格式化
s2 = "敌人坐标:{}".format(c)
很显然,上面这一个理由就已经足够让你在以后的项目中使用format了。
新特性
在Python3.6中加入了f-strings:
In[1]: name = "Q1mi"
In[2]: age =
In[3]: f"My name is {name}.I'm {age}"
Out[3]: "My name is Q1mi.I'm 18"
常用的format用法
通过位置
In[1]: data = ["Q1mi", ]
In[2]: "Name:{0}, Age:{1}".format(*data)
Out[2]: 'Name:Q1mi, Age:18'
通过关键字
In[]: data = {"name": "Q1mi", "age": }
In[]: "Name:{name}, Age:{age}".format(**data)
Out[]: 'Name:Q1mi, Age:18'
通过对象属性

In[]: class Person(object):
...: def __init__(self, name, age):
...: self.name = name
...: self.age = age
...: def __str__(self):
...: return "This guy is {self.name}, {self.age} years old.".format(self=self)
...:
In[2]: p = Person("Q1mi", )
In[3]: str(p)
Out[3]: 'This guy is Q1mi, 18 years old.'

通过下标
In[]: "{0[0]} is {0[1]} years old.".format(data)
Out[]: 'Q1mi is 18 years old.'
填充与对齐

In[]: "{:>10}".format('')
Out[]: ''
In[]: "{:0>10}".format('')
Out[]: ''
In[]: "{:A>10}".format('')
Out[]: 'AAAAAAAA18

补充一个字符串自带的zfill()方法:
In[]: "".zfill()
Out[]: ''
精度与类型f
In[]: "{:.2f}".format(3.1415926)
Out[]: '3.14'
其中.2表示长度为2的精度,f表示float类型。
其他进制

In[]: "{:b}".format()
Out[]: ''
In[]: "{:d}".format()
Out[]: ''
In[]: "{:o}".format()
Out[]: ''
In[]: "{:x}".format()
Out[]: ''

千位分隔符
In[]: "{:,}".format()
Out[]: '1,234,567,890'
python常用的字符串格式化有哪几种?的更多相关文章
- python中的字符串格式化
Python中常见的字符串格式化方式包括两种:字符串插入(str%),format函数(str.format()) 1.字符串插入 字符串插入是设置字符串格式的简单方法,与C语言.Fortran语言差 ...
- Python第二天 变量 运算符与表达式 input()与raw_input()区别 字符编码 python转义符 字符串格式化 format函数字符串格式化 帮助
Python第二天 变量 运算符与表达式 input()与raw_input()区别 字符编码 python转义符 字符串格式化 format函数字符串格式化 帮助 目录 Pychar ...
- python 中的字符串格式化
python 中的字符串格式化 %方式的调用 1.格式化代码 代码 意义 s 字符串,使用str r 字符串,使用repr不使用str c 字符 d 十进制的数字 i 整数 u 无符号整数 o 八进制 ...
- Python高手之路【六】python基础之字符串格式化
Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[PEP-3101] This ...
- Python开发【第一篇】Python基础之字符串格式化
字符串格式化 Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[PEP-310 ...
- python基础09_字符串格式化
首先,使用%s 的方法. #!/usr/bin/env python # coding:utf-8 # 不用format方法,使用%s 和%d name = 'Tom' age = 100 msg = ...
- Python学习日记(十)—— 杂货铺(全局变量补充、Python参数传递、字符串格式化、迭代器、生成器)
全局变量补充 python自己添加了些全局变量 print(vars()) """结果: {'__name__': '__main__', '__doc__': None ...
- Python补充05 字符串格式化 (%操作符)
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在许多编程语言中都包含有格式化字符串的功能,比如C和Fortran语言中的格式化输 ...
- 【python基础】字符串格式化(% VS format)
字符串格式化 Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存. 1.百分号方式 ...
随机推荐
- python开发笔记之zip()函数用法详解
今天分享一篇关于python下的zip()函数用法. zip()是Python的一个内建函数,它接受一系列可迭代的对象作为参数,将对象中对应的元素按顺序组合成一个tuple,每个tuple中包含的是原 ...
- JS关闭当前窗口
function logOut() { $('#logging-out').on('click', function () { stopPreventDefault(); $.messager.con ...
- springboot使用jdbcTemplate案例
1 创建实体类 public class Student { private Integer stuid; private String stuname; public Integer getStui ...
- 羊村的OI题解
目录 喜羊羊与灰太狼--仓库管理 喜羊羊与灰太狼--破译密码 喜羊羊与灰太狼--烦恼的礼物 喜羊羊与灰太狼--仓库管理 传送门 水的一批,还让开o2了 就不写了 #include<iostrea ...
- 洛谷 P4822 [BJWC2012]冻结 题解
P4822 [BJWC2012]冻结 题目描述 "我要成为魔法少女!" "那么,以灵魂为代价,你希望得到什么?" "我要将有关魔法和奇迹的一切,封印于 ...
- 超参数(Hyperparameter)
什么是超参数? 机器学习模型中一般有两类参数:一类需要从数据中学习和估计得到,称为模型参数(Parameter)---即模型本身的参数.比如,线性回归直线的加权系数(斜率)及其偏差项(截距)都是模型参 ...
- 表单提交 curl和浏览器方式
表单被提交时,每个表单域都会被Url编码之后才在被发送. 浏览器每次向服务器发送url时,会进行编码,然后web服务器再进行解码. 所以,理论上,curl模拟登陆时,所传参数都必须urlencode一 ...
- mysql lower()函数
mysql> select " DFREF"; +--------+ | DFREF | +--------+ | DFREF | +--------+ row in set ...
- 稀疏矩阵的存储(c++)
0 0 0 0 0 0 0 3 0 0 0 0 0 ...
- 关于 Javascript 学习,有哪些好的博客或者网站推荐?
知乎社区:http://www.zhihu.com/question/19651401 Mozilla开发者网络社区:https://developer.mozilla.org/zh-CN/ moze ...