一、格式化字符功能介绍

  应用场景:一般在print的时候提供占位符;python中提供两种格式化字符串方式:第一种是古老的利用百分号的方式,第二种是增强的格式化字符串、format 函数。

二、古老的百分号方式

1、常见用法

常见占位符:%s   -------------字符串占位符

            %d   -------------数字占位符

            %f    -------------浮点型数字占位符

例如:输入用户的信息,并打印出来

 name= raw_input('input your name: ')
age= raw_input ('input your age: ')
job = raw_input ('input your job: ')
msg=''' #定义变量msg,字符串中提供占位符
Information of user %s:
-------------------------------
Name: %s
Age: %s
#特别注意这里,像age这种通过raw_input方式定义的变量,python默认都为字符串,因此这里不用%d,而是用%s
#如果非要用%d的话,那么可以在定义age的时候用函数转换 age= int(raw_input ('input your age: '))
Job: %s
--------------End--------------
'''%(name,name,age,job) #把3个用户定义的变量依次赋给msg字符串中的各个占位符,实现替换,注意4个要按顺序一一对应
print msg 结果: Information of user Mr.Mangood:
-------------------------------
Name: Mr.Mangood
Age: 27
Job: Engineer
--------------End--------------

2、更多高级用法

占位符结构: %[(name)][flags][width].[precision]typecode

其中:

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

 >>> info = '''联系人%(name)s的年龄是%(age)d'''%{'name':'Mr.Mangood','age':23} # 这里可以用字典{'name':'Mr.Mangood','age':23}来对占位符传值
>>> print info
联系人Mr.Mangood的年龄是23

  [flags]        可选,当占位符设定了宽度的时候比如设定20个字符,但我们传值的时候只写了4个字符,这时对齐的概念就出现了,一般我们会配合着[width]来说

    +      右对齐

    -       左对齐

    空格      右对齐

    0      右对齐

  [width]     可选,定义占位符宽度

 >>> info = '''联系人%(name)20s的年龄是%(age)d'''%{'name':'Mr.Mangood','age':23}   # 这里的20就是宽度[width],不写[flags]默认右对齐
>>> print info
联系人 Mr.Mangood的年龄是23 >>> info = '''联系人%(name)+20s的年龄是%(age)d'''%{'name':'Mr.Mangood','age':25} # 这里的+20就是右对齐
>>> print info
联系人 Mr.Mangood的年龄是25 >>> info = '''联系人%(name)-20s的年龄是%(age)d'''%{'name':'Mr.Mangood','age':23} # 这里的-20就是代表左对齐
>>> print info
联系人Mr.Mangood 的年龄是23

  .precision    小数点后保留的位数

 >>> info = '''学生%(name)s的年龄是%(age)d平均成绩为%(avgscore).2f'''%{'name':'Mr.Mangood','age':25,'avgscore':85.2479} #这里的.2就代表%f这个浮点型占位符保留两位小数
>>> print info
学生Mr.Mangood的年龄是25平均成绩为85.25

  typecode    必选

      c    %c将传进来的整数数字转换成其unicode对应的值

      o    将整数转换成八进制表示

      x    将整数转换成十六进制表示

 >>> s = '''测试ASCII码转换%c测试八进制转换%o测试16进制转换%x'''%(65,9,15)
>>> print s
测试ASCII码转换A测试八进制转换11测试16进制转换f

      e    将整数、浮点数转换成科学计数法(科学计数法中的e为小写的e)

      E    将整数、浮点数转换成科学计数法(科学计数法中的E为大写的E)

 >>> test = '''测试科学技术法%e测试科学技术法%E'''%(98888888,98888888)
>>> print test
测试科学技术法9.888889e+07测试科学技术法9.888889E+07

      g            自动识别数字大小是否需要转换成科学计数法(如果超过6位数,就用科学计数法来表示),科学计数法中的e为小写

      G            自动识别数字大小是否需要转换成科学计数法(如果超过6位数,就用科学计数法来表示),科学计数法中的G为大写

 >>> test = '''测试科学技术法%e测试科学技术法%g'''%(123456,123456)
>>> print test
测试科学技术法1.234560e+05测试科学技术法123456

      %           当字符串中出现了格式化标志时,需要用%%表示一个%

 >>> zhenli = '''%s是%d%%纯爷们'''%('Mr.Mangood',100)
>>> print zhenli
Mr.Mangood是100%纯爷们

三、先进的format()方式

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

  1. 『Python基础-4』字符串

    # 『Python基础-4』字符串 目录 1.什么是字符串 2.修改字符串 2.1 修改字符串大小 2.2 合并(拼接)字符串 2.3 使用乘号'*'来实现字符串的叠加效果. 2.4 在字符串中添加空 ...

  2. 2.Python基础认识(格式化输出,while语句,运算符,编码,单位转化)

    Python基础认识 1.字符串的格式化初识及占位符的简单应用 字符串的格式化 按照既定的要求进行有规定排版的一种输出方式. #我们想要输出的格式如下: ----------------------- ...

  3. Python基础数据类型之字符串

    Python基础数据类型之字符串 一.Python如何创建字符串 在python中用引号将一些文本包起来就构成了字符串(引号可以是单引号.双引号.单三引号,双三引号,它们是完全相同的) >> ...

  4. python基础_格式化输出(%用法和format用法)(转载)

    python基础_格式化输出(%用法和format用法) 目录 %用法 format用法 %用法 1.整数的输出 %o -- oct 八进制%d -- dec 十进制%x -- hex 十六进制 &g ...

  5. Python基础篇(格式化输出,运算符,编码):

    Python基础篇(格式化输出,运算符,编码): 格式化输出: 格式:print ( " 内容%s" %(变量)) 字符类型: %s  替换字符串      %d 替换整体数字  ...

  6. Python基础-7.1字符串的格式化

    字符串格式化 Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[PEP-310 ...

  7. python基础(5):格式化输出、基本运算符、编码问题

    1. 格式化输出 现在有以下需求,让⽤户输入name, age, job,hobby 然后输出如下所⽰: ------------ info of Alex Li ----------- Name : ...

  8. Python学习day05 - Python基础(3) 格式化输出和基本运算符

    figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { position: relative; } img { max- ...

  9. 飘逸的python - 增强的格式化字符串format函数

    自python2.6开始,新增了一种格式化字符串的函数str.format(),可谓威力十足.那么,他跟之前的%型格式化字符串相比,有什么优越的存在呢?让我们来揭开它羞答答的面纱. 语法 它通过{}和 ...

随机推荐

  1. PYTHON 中的字符集

    一.前言 Python中的字符编码是个老生常谈的话题,今天来梳理一下相关知识,希望给其他人些许帮助. Python2的 默认编码 是ASCII,不能识别中文字符,需要显式指定字符编码:Python3的 ...

  2. android获取mp4视频文件总时长和视频宽高<转>

    android使用 MediaMetadataRetriever 获取视频文件的 总时长 和视频的分辨率. 根据该方式获取视频信息可以看出不仅仅可以获取时长和分辨率,还能获取到其他的一些视频信息,不错 ...

  3. Winform Datagridview 单元格html格式化支持富文本

    Winform Datagridview 单元格html格式化支持富文本 示例: 源码:https://github.com/OceanAirdrop/DataGridViewHTMLCell 参考: ...

  4. 【286】◀▶ Python 内置函数说明

    参考: Python 内置函数 01   abs() 返回数字的绝对值. 02   all() 用于判断给定的可迭代参数 iterable 中的所有元素是否不为 0.''.False 或者 itera ...

  5. 构造IOCTL命令的学习心得-----_IO,…

    在编写ioctl代码之前,需要选择对应不同命令的编号.为了防止对错误的设备使用正确的命令,命令号应该在系统范围内唯一,这种错误匹配并不是不会发生,程序可能发现自己正在试图对FIFO和audio等这类非 ...

  6. SkyBox

    [SkyBox] Skyboxes 本质是一个Material,这个Meterial的shader必须设置为ShaderFX/Skybox. SkyBox可以被绑定到摄像机或设置一个全局的SkyBox ...

  7. ora-28547:连接服务器失败,可能是 Oracle Net 管理失败

    检查如下: 监听程序的配置文件 发现多了 (PROGRAM = extproc) 去掉后如下: # listener.ora Network Configuration \dbhome_1\netwo ...

  8. day58-activiti 02-历史数据查询

    Activity 笔记  第二天 今天内容安排: 1.历史数据查询 办过多少个任务, 这些历史数据有时候我们也需要去查询一下. 本身day02这个项目就没有导jar包,有点类似于maven,在你的项目 ...

  9. bootstrap设计网站中添加代码高亮插件

    这款插件的名字叫做google-code-prettify 使用该插件之前的效果: 使用插件之后的效果: 接下来说步骤: (1)下载两个文件 http://codecloud.sinaapp.com/ ...

  10. Python05 函数

    待更新... 2018-4-16 09:00:30