python基础之格式化字符串
一、格式化字符功能介绍
应用场景:一般在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基础之格式化字符串的更多相关文章
- 『Python基础-4』字符串
# 『Python基础-4』字符串 目录 1.什么是字符串 2.修改字符串 2.1 修改字符串大小 2.2 合并(拼接)字符串 2.3 使用乘号'*'来实现字符串的叠加效果. 2.4 在字符串中添加空 ...
- 2.Python基础认识(格式化输出,while语句,运算符,编码,单位转化)
Python基础认识 1.字符串的格式化初识及占位符的简单应用 字符串的格式化 按照既定的要求进行有规定排版的一种输出方式. #我们想要输出的格式如下: ----------------------- ...
- Python基础数据类型之字符串
Python基础数据类型之字符串 一.Python如何创建字符串 在python中用引号将一些文本包起来就构成了字符串(引号可以是单引号.双引号.单三引号,双三引号,它们是完全相同的) >> ...
- python基础_格式化输出(%用法和format用法)(转载)
python基础_格式化输出(%用法和format用法) 目录 %用法 format用法 %用法 1.整数的输出 %o -- oct 八进制%d -- dec 十进制%x -- hex 十六进制 &g ...
- Python基础篇(格式化输出,运算符,编码):
Python基础篇(格式化输出,运算符,编码): 格式化输出: 格式:print ( " 内容%s" %(变量)) 字符类型: %s 替换字符串 %d 替换整体数字 ...
- Python基础-7.1字符串的格式化
字符串格式化 Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[PEP-310 ...
- python基础(5):格式化输出、基本运算符、编码问题
1. 格式化输出 现在有以下需求,让⽤户输入name, age, job,hobby 然后输出如下所⽰: ------------ info of Alex Li ----------- Name : ...
- Python学习day05 - Python基础(3) 格式化输出和基本运算符
figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { position: relative; } img { max- ...
- 飘逸的python - 增强的格式化字符串format函数
自python2.6开始,新增了一种格式化字符串的函数str.format(),可谓威力十足.那么,他跟之前的%型格式化字符串相比,有什么优越的存在呢?让我们来揭开它羞答答的面纱. 语法 它通过{}和 ...
随机推荐
- 可重复使用Tab切换代码和纯js代码
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- MongoDB在Java下的增删查改
我们总不能一直使用cmd对数据库操作,数据库总是要在程序中使用的.今天来说一下怎么通过Java调用MongoDB. 学习一下最基本也是最常用的增删查改语句,这是使用数据库的基础. 注意事项: 1.要打 ...
- mysql 批量插入与单条插入 的效率比较
1.数据插入性能(单个插入和批量插入) public class Test { private Long id; private String test; public Long getId() { ...
- Spring整合web项目原理
- jar包上传到jcenter
H:\[BOOT]\gradle-5.0-bin\gradle-5.0\gradle.properties # in $HOME/.gradle/gradle.properties java6Home ...
- 在Build Path中包含其他工程
------------siwuxie095 在 TestBuildPath 的 Build Path 中包含 SupportProje ...
- 在Windows里定时执行一个Python文件
一.系统环境 操作系统:Win7 64位 二.说明 1.建立一个dos批处理文件 例: @echo off C: cd C:\work\python python aaa.py exit 2.利用Wi ...
- 面试题:Java集合面试题(40道) 背1
Java集合框架为Java编程语言的基础,也是Java面试中很重要的一个知识点.这里,我列出了一些关于Java集合的重要问题和答案. 1.Java集合框架是什么?说出一些集合框架的优点? 每种编程语言 ...
- linux删除文件后磁盘空间未释放的问题
很可能是该文件还被其它进程使用. 使用: lsof | grep deleted | grep $FILE_NAME 可以看到正使用该文件的进程,将之kill即可.也可以查看进程来验证: ls -l ...
- Luogu 3237 [HNOI2014]米特运输
BZOJ 3573 发现当一个点的权值确定了,整棵树的权值也会随之确定,这个确定关系表现在根结点的总权值上,如果一个点$x$的权值为$v$,那么一步步向上跳后,到根节点的权值就会变成$x*$每一个点的 ...