一 普通format方法使用
format(参数一,参数二)
参数一表示需要格式化的数字
参数二表示需要格式化的方式
举例 format(x."<n.2f")
x是实际的数据,<表示左对齐,n表示数据所占长度,2f表示雄安舒位数保留2位
实例>>> y=format(x,“0.2f”)
repl环境下的实验
y
‘123.46’y=format(x,“0>20.2f”)
y
‘00000000000000123.46’y=format(x,“0<20.2f”)
y
‘123.4600000000000000’y=float(y)
y
123.46y+1000
1123.46a=format(y,’,’)
a
‘123.46’y=y+1000
y
1123.46a=format(y,’,’)
File “”, line 1
a=format(y,’,’)
IndentationError: unexpected indenta=format(y,’,’)
a
‘1,123.46’a=format(y,’,’.2f)
File “”, line 1
a=format(y,’,’.2f)
^
SyntaxError: invalid syntax
千分制法 ,用‘,’表示
举例:
a=format(y,’,.2f’)
a
‘1,123.46’a=format(y,’,.1f’)
a
‘1,123.5’
科学技术法
用科学计数法表示1.2345*10的4次方
在计算机中10的几次方,可以表示为e的几次方
十的四次方在计算机中表示为e+4
十的夫四次方在计算机中表示为e-4
具体代码>>> y
1123.46
a=format(y,“0.1e”)
a
‘1.1e+03’
注意
这个方法是字符串自带的方法
使用format方法的时候的格式:必须使用大括号{}
注意:使用format方法后会返回一个新的字符串
format使用最简单案例
s="x香江小{},{}做的就是好"
x=s.format("汉堡","汉堡")
print(x)
x香江小汉堡,汉堡做的就是好
注意,这里的format中的参数,按照顺序,依次对s字符串中的{}进行替换
fromat使用关键字方式来替换
不必按照依次顺序,将只会按照关键字对应的地方替换
s="x香江小{a},{b}做的{c}就是好"
x=s.format(a="汉堡",b="汉堡",c="tmd")
print(x)
x香江小汉堡,汉堡做的tmd就是好
直接使用数字方式开替换
s="x香江小汉堡,{1}做的{0}就是好"
x=s.format("tmd","汉堡")
print(x)
关键字和数字方式混用
s="x香江小{a},{1}做的{0}就是好"
x=s.format("tmd","汉堡",a="tmd")
print(x)
注意,在混用时,在format函数中,必须要先写数字顺序对应的替换内容,然后再写关键字的替换不然会报错
字符串替换对应列表中的值
这里的列表a为别名,这个别名在format替换的时候一定要对应真正的列表
list1=["汉堡","真他妈好"]
s="x香江小{a[0]},{a[1]}做的就{a[0]}是好"
x=s.format(a=list1)
print(x)
采用对象的方式格式化输出
这里的对象a为别名,这个别名在format替换的时候一定要对应真正的对象
import math
s="PI={a.pi}"
x=s.format(a=math)
print(x)
PI=3.141592653589793
format实现进制,编码,等的转换
特殊字符的运用:使用!的方式
使用a可以转换为unicode编码格式
使用s可以直接将值转换位字符串
使用r可以表示使用repr函数来输出
s="伯乐{daibiao!a}家http://baidu.com"
print(s.format(daibiao="科学"))
print(s.format(daibiao="杜博文"))
print(s.format(daibiao="邵晔丹"))
print(s.format(daibiao="我爱你"))
s="伯乐{daibiao!a}家{daibiao2!s}http://baidu.com"
print(s.format(daibiao="杜博文",daibiao2="我爱你"))
print()
s="伯乐{daibiao!a}家{daibiao2!s}{daibiao3!r}http://baidu.com"
print(s.format(daibiao="杜博文",daibiao2="我爱你",daibiao3="\n"))
s="伯乐{daibiao!a}家{daibiao2!s}{daibiao3}http://baidu.com"
print(s.format(daibiao="杜博文",daibiao2="我爱你",daibiao3="\n"))
伯乐’\u79d1\u5b66’家http://baidu.com
伯乐’\u675c\u535a\u6587’家http://baidu.com
伯乐’\u90b5\u6654\u4e39’家http://baidu.com
伯乐’\u6211\u7231\u4f60’家http://baidu.com
伯乐’\u675c\u535a\u6587’家我爱你http://baidu.com
伯乐’\u675c\u535a\u6587’家我爱你’\n’http://baidu.com
伯乐’\u675c\u535a\u6587’家我爱你
特殊符号的运用,使用冒号:的方式
进制转换的案例
#十六进制11是b,0xb表示的是十六机制中的“11”
s="二进制:{n:b} 八进制:{n:o} 十进制:{n:d} 十六进制{n:x} "
print(s.format(n=11))
print(s.format(n=0xb))
二进制:1011 八进制:13 十进制:11 十六进制b
二进制:1011 八进制:13 十进制:11 十六进制b
科学计数法e
使用e来表示
x="{n:e}"
>>> print(x.format(n=2827000))
2.827000e+06
2.827000e+06
百分号%的方式表示百分比
直接使用%
x="{n:%}"
>>> print(x.format(n=0.06))
6.000000%
f浮点型数据
转换为浮点型
x="{n:f}"
>>> print(x.format(n=8))
8.000000
一点小小的心得
将以上总结为
‘!’:
适用a s r
’:‘:
适用 f e b o d x %
两种format方法比较
第一种:print的时候,直接使用fotmat函数 format(字符串,格式化)
第二种字符串自带的format方法
格式化精度,保留小数位
第一种
x=pi
format(x,".2f")
第二种
x="{pi:.2f}"
x.format(pi=pi)
y="pi={:.2f}"
print(y.format(math.pi))
y="pi={pi:.2f}"
print(y.format(pi=math.pi))
区别:第一种直接format将某一个数值进行格式化,第二个方式可以将某个字符串的某个部分进行格式化输出
保留千分位
第一种
print(format(math.pi*1000000,",.2f"))
第二种
print("开始输出第二种:{:.2f}".format(math.pi*1000000))
区别:第一种直接format将某一个数值进行格式化,第二个方式可以将某个字符串的某个部分进行格式化输出
#d第一种
print(format(math.pi*1000000,".2f"))
print(format(math.pi*1000000,","))
print(format(math.pi*1000000,",.2f"))
#第二种
print("开始输出第二种:{:,}".format(math.pi*1000000))
print("开始输出第二种:{:,.2f}".format(math.pi*1000000))
print("开始输出第二种:{:.2f}".format(math.pi*1000000))
y="开始输出第二种:{:,}"
print(y.format(math.pi*100000))
y="开始输出第二种:{n:,}"
print(y.format(n=math.pi*100000))
3141592.65
3,141,592.653589793
3,141,592.65
开始输出第二种:3,141,592.653589793
开始输出第二种:3,141,592.65
开始输出第二种:3141592.65
开始输出第二种:314,159.2653589793
开始输出第二种:314,159.2653589793
字段宽度的pk
#字符串宽度输出
#第一种
print(format(math.pi,"0>10.2f"))
print(format(math.pi,"0<10.2f"))
print(format(math.pi,"_<10.2f"))
print(format(math.pi,">10.2f"))
print(format(math.pi,"^10.2f"))
#第二种
print("第二种字段控制:{n:5.2f}".format(n=math.pi))
print("第二种字段控制:{n:10.2f}".format(n=math.pi))
print("第二种字段控制:{n:1.2f}".format(n=math.pi))
#如果设置的宽度超过字符串的宽度,那么会保留字符串的宽度
0000003.14
3.14000000
3.14______
3.14
3.14
第二种字段控制: 3.14
第二种字段控制: 3.14
第二种字段控制:3.14
补充:py中的特殊字符
inf +inf表示无穷大 -inf表示无穷小
nan 表示非数字类型,字母字符啥的
大小写一样
补充函数 pow(参数一,参数二)函数
参数一就是数x,参数二就是数y
pow(x,y)结果就是x的y次方
运算符对应**
x**y
补充:字符串如何不转义?
1 \ 再前面再加一个\。相当于把转义符号转义掉
x="香江小海涛\n点击"
print(x)
x="香江小海涛\\n点击"
print(x)
x="香江小海涛\\\n点击"
print(x)
2 r 在字符串前加小写r,注意的是不能个变量字符串连用
print(r"香江小海涛\\n点击")
3 repr(字符串)函数,repr函数输出后的字符串带有单引号
print(repr("香江小海涛\\n点击"))
print(repr(x))
‘香江小海涛\n点击’
‘香江小海涛\n点击’
补充:字符串如何拼接?
1 使用print函数自带的参数输出功能
x="可接受的和"
y="大是大非"
print(x,y)
可接受的和 大是大非
中间连接处有一空格
2 使用+来拼接字符串
x="可接受的和"
y="大是大非"
print(x+y)
可接受的和大是大非
中间连接没有空格
补充:字符串如何分多行写?
\作用就是续行书写,这里注意,下一行的空格会被实际输出
x="skjd\
h"
y="ksd" \
"jhf"
print(y)
print(x)
ksdjhf
skjd h
注意的是单个引号的方式的时候注意中间输出的换行也将在结果输出中环哈那个,输出格式不变。如遇到转义字符,那么也会被转义,没那么原汁原味