Python 字符串格式化

Python的字符串格式化有两种方式: 百分号方式、format方式

百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存

一、百分号方式

%[(name)][flags][width].[precision]typecode

  • (name)      可选,用于选择指定的key

  • flags          可选,可供选择的值有:

    • +       右对齐;正数前加正好,负数前加负号;

    • -        左对齐;正数前无符号,负数前加负号;

    • 空格    右对齐;正数前加空格,负数前加负号;

    • 0        右对齐;正数前无符号,负数前加负号;用0填充空白处

  • width         可选,占有宽度

  • .precision   可选,小数点后保留的位数

  • typecode    必选

    • s,获取传入对象的__str__方法的返回值,并将其格式化到指定位置

    • r,获取传入对象的__repr__方法的返回值,并将其格式化到指定位置

    • c,整数:将数字转换成其unicode对应的值,10进制范围为 0 <= i <= 1114111(py27则只支持0-255);字符:将字符添加到指定位置

    • o,将整数转换成 八  进制表示,并将其格式化到指定位置

    • x,将整数转换成十六进制表示,并将其格式化到指定位置

    • d,将整数、浮点数转换成 十 进制表示,并将其格式化到指定位置

    • e,将整数、浮点数转换成科学计数法,并将其格式化到指定位置(小写e)

    • E,将整数、浮点数转换成科学计数法,并将其格式化到指定位置(大写E)

    • f, 将整数、浮点数转换成浮点数表示,并将其格式化到指定位置(默认保留小数点后6位)

    • F,同上

    • g,自动调整将整数、浮点数转换成 浮点型或科学计数法表示(超过6位数用科学计数法),并将其格式化到指定位置(如果是科学计数则是e;)

    • G,自动调整将整数、浮点数转换成 浮点型或科学计数法表示(超过6位数用科学计数法),并将其格式化到指定位置(如果是科学计数则是E;)

    • %,当字符串中存在格式化标志时,需要用 %%表示一个百分号

注:Python中百分号格式化是不存在自动将整数转换成二进制表示的方式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
>>> print ("my name is %s" %"kingway")
my name is kingway
>>> print ("my name is %(name)s" % {"name": "Kingway"})
my name is Kingway
>>> print ("this price is %d million" %(3.1518))
this price is 3 million
>>> print ("this price is %f million" %(3.1518))
this price is 3.151800 million
>>> print ("this price is %.2f million" %(3.1518))
this price is 3.15 million
>>> print ("this percent is %.2f%%" %(32.78))
this percent is 32.78%
>>> print("%-15s%-15s%-15s\n%-15s%-15s%-15s" % ("name", "addr", "phone", "Kingway", "Hangzhou", "18888888888"))
name           addr           phone         
Kingway        Hangzhou       18888888888

二、Format方式

[[fill]align][sign][#][0][width][,][.precision][type]

  • fill           【可选】空白处填充的字符

  • align        【可选】对齐方式(需配合width使用)

    • <,内容左对齐

    • >,内容右对齐(默认)

    • =,内容右对齐,将符号放置在填充字符的左侧,且只对数字类型有效。 即使:符号+填充物+数字

    • ^,内容居中

  • sign         【可选】有无符号数字

    • +,正号加正,负号加负;

    •  -,正号不变,负号加负;

    • 空格 ,正号空格,负号加负;

  • #            【可选】对于二进制、八进制、十六进制,如果加上#,会显示 0b/0o/0x,否则不显示

  • ,            【可选】为数字添加分隔符,如:1,000,000

  • width       【可选】格式化位所占宽度

  • .precision 【可选】小数位保留精度

  • type         【可选】格式化类型

    • 传入” 字符串类型 “的参数

      • s,格式化字符串类型数据

      • 空白,未指定类型,则默认是None,同s

    • 传入“ 整数类型 ”的参数

      • b,将10进制整数自动转换成2进制表示然后格式化

      • c,将10进制整数自动转换为其对应的unicode字符

      • d,十进制整数

      • o,将10进制整数自动转换成8进制表示然后格式化;

      • x,将10进制整数自动转换成16进制表示然后格式化(小写x)

      • X,将10进制整数自动转换成16进制表示然后格式化(大写X)

    • 传入“ 浮点型或小数类型 ”的参数

      • e, 转换为科学计数法(小写e)表示,然后格式化;

      • E, 转换为科学计数法(大写E)表示,然后格式化;

      • f , 转换为浮点型(默认小数点后保留6位)表示,然后格式化;

      • F, 转换为浮点型(默认小数点后保留6位)表示,然后格式化;

      • g, 自动在e和f中切换

      • G, 自动在E和F中切换

      • %,显示百分比(默认显示小数点后6位)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
>>> print ("my name is {}, i am work in {}".format("Kingway", "Hangzhou"))
my name is Kingway, i am work in Hangzhou
>>> print ("my name is {0}, study {1}, come on {0}".format("Kingway", "Python"))
my name is Kingway, study Python, come on Kingway
>>> print ("my name is {0}, study {1}, come on {0}".format(*["Kingway","Python"]))
my name is Kingway, study Python, come on Kingway
>>> print ("my name is {name}, i am work in {addr}".format(name="Kingway",addr="Hangzhou"))
my name is Kingway, i am work in Hangzhou
>>> print ("my name is {name}, i am work in {addr}".format(**{"name":"Kingway","addr":"Hangzhou"}))
my name is Kingway, i am work in Hangzhou
>>> print ("num: {:b},{:o},{:d},{:x},{:X},{:%}".format(15,15,15,15,15,15))
num: 1111,17,15,f,F,1500.000000%
>>> print ("num: {0:b},{0:o},{0:d},{0:x},{0:X},{0:%}".format(15))
num: 1111,17,15,f,F,1500.000000%
>>> print ("this price is {:,}".format(412342523))
this price is 412,342,523
>>> print ("{:^15}{:^15}{:^15}\n{:^15}{:^15}{:^15}".format("name","addr","phone","Kingway","Hangzhou","18888888888"))
     name           addr           phone    
    Kingway       Hangzhou      18888888888 
>>> print ("{:=^30}".format("Information System"))
======Information System======

 

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

  1. python字符串格式化 %操作符 {}操作符---总结

    Python字符串格式化 (%占位操作符) 在许多编程语言中都包含有格式化字符串的功能,比如C和Fortran语言中的格式化输入输出.Python中内置有对字符串进行格式化的操作 %. 模板 格式化字 ...

  2. 【转】Python字符串格式化

    Python 支持格式化字符串的输出 .尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中. 在 Python 中,字符串格式化使用与 C 中 sp ...

  3. 7. python 字符串格式化方法(2)

    7. python 字符串格式化方法(2) 紧接着上一章节,这一章节我们聊聊怎样添加具体格式化 就是指定替换字段的大小.对齐方式和特定的类型编码,结构如下: {fieldname!conversion ...

  4. 7. python 字符串格式化方法(1)

    7. python 字符串格式化方法(1) 承接上一章节,我们这一节来说说字符串格式化的另一种方法,就是调用format() >>> template='{0},{1} and {2 ...

  5. 6. python 字符串格式化表达式

    6. python 字符串格式化表达式 字符串格式化允许在一个单个的步骤中对一个字符串执行多个特定类型的替换 特别是给用户提示的时候,格式化非常方便 实现方法: 1.格式化表达式,类似于c语言的pri ...

  6. python字符串格式化--dict传参

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #python字符串格式化--dict传参 print "I'm %(name)s. I'm %(a ...

  7. Python学习:12.Python字符串格式化

    字符串格式化 讲解Python这么久,也没有讲解Python的字符串的格式化,那我们今天就来了解一下python字符串格式化的强大之处. 首先我们先理解一下为什么要有字符串的格式化,就是为了方便字符串 ...

  8. Python字符串格式化

    一.使用格式化符来格式化字符串: Python支持的所有格式化符 格式化符 意义 'd' 返回要格式化对象的十进制表示,如果可以 'i' 返回要格式化对象的十进制表示,如果可以 'o' 返回要格式化对 ...

  9. python字符串格式化方法 format函数的使用

      python从2.6开始支持format,新的更加容易读懂的字符串格式化方法, 从原来的% 模式变成新的可读性更强的 花括号声明{}.用于渲染前的参数引用声明, 花括号里可以用数字代表引用参数的序 ...

随机推荐

  1. IIS7配置Gzip压缩 JS压强失败的原因

    开启配置HTTP压缩(GZip) 在IIS7中配置Gzip压缩相比IIS6来说实在容易了许多,而且默认情况下就是启用GZip压缩的.如果没有,则可以再功能视图下找到“压缩”项,进入之后就会看到“静态内 ...

  2. Myeclipse中导入新项目报叹号

    Myeclipse中导入新项目报红色叹号 原因是导入项目中,有的jar路径不对, 在上图中,先把报错的jar移除,之后将JRE开头的那个library移除,最后点击add Library,选择jre. ...

  3. 【JS】数字转大写中文

    原文参考 逛到一道面试题,数字转大写中文的,搜索学习并记录于此. //自动转换数字金额为大小写中文字符,返回大小写中文字符串,最大处理到999兆 function changeMoneyToChine ...

  4. Latex 数学符号

    本文完全转自 <常用数学符号的 LaTeX 表示方法>,在此转载仅仅为了便于查阅,谨向原作者致以崇高的敬意. 常用数学符号的 LaTeX 表示方法 (以下内容主要摘自“一份不太简短的 LA ...

  5. Spring可以将简单的组件配置

    这次听了老师的课程,觉得还是需要更加集中的去把各种题进行一个分类吧,然后有针对的去准备,虽然据说这一块在面试中也不容易考到,但是毕竟是难点,还是需要好好准备一下的.因为在dp这个方面,我算是一个比较新 ...

  6. asd

    弹出输入提示框 :window.prompt(); 24. 指定当前显示链接的位置 :window.location.href="URL" 25. 取出窗体中的所有表单的数量 :d ...

  7. Oracle字符集修改

    1.使用管理员账号登录到oracle C:\Users\Administrator>sqlplus / as sysdba 2.查看字符集 SQL>select userenv('lang ...

  8. uva1635

    /* 哑元 组合数的递推整除判断_________________________________________________________________________________ #i ...

  9. 【jq】c#零基础学习之路(5)自己编写简单的Mylist<T>

    public class MyList<T> where T : IComparable { private T[] array; private int count; public My ...

  10. Substring with Concatenation of All Words

    You are given a string, s, and a list of words, words, that are all of the same length. Find all sta ...