欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python之格式化输出及函数format

程序员文章站 2022-07-14 23:42:37
...

python之格式化输出及函数format

一、字符串格式化代码:

格式  描述
%%  百分号标记
%c  字符及其ASCII码
%s  字符串
%d  有符号整数(十进制)
%u  无符号整数(十进制)
%o  无符号整数(八进制)
%x  无符号整数(十六进制)
%X  无符号整数(十六进制大写字符)
%e  浮点数字(科学计数法)
%E  浮点数字(科学计数法,用E代替e)
%f  浮点数字(用小数点符号)
%g  浮点数字(根据值的大小采用%e或%f)
%G  浮点数字(类似于%g)
%p  指针(用十六进制打印值的内存地址)
%n  存储输出字符的数量放进参数列表的下一个变量中

二、格式化输出的两种方式

方式一:格式化操作符%

"%"是Python风格的字符串格式化操作符,非常类似C语言里的printf()函数的字符串格式化(C语言中也是使用%)。

实例一:%s,%d
username=input('your name is:')
password=int(input('your password is:'))
message='我是%s,我的密码%d ' %(username,password)
print(message)
pytharm3.6中执行结果为:
your name is:zhangjunchao
your password is:123456
我是zhangjunchao,我的密码123456 

实例二:%s,%d
Name=input('请输入姓名:')
Age=int(input('请输入年龄:'))
Job=input('你的工作是:')
Hobbie=input('你的爱好:')
msg='''------ info ------
Name:   %s
Age:    %d
Job:    %s
Hobbie: %s
------ end ------  '''  %(Name,Age,Job,Hobbie)
print(msg)
pytharm3.6中执行结果为:
请输入姓名:zhang
请输入年龄:22
你的工作是:IT
你的爱好:girl
------ info ------
Name:   zhang
Age:    22
Job:    IT
Hobbie: girl
------ end ------  
注:''' '''是注释多行。

方式二:通过{}代替传统的%

Python2.6开始,新增了一种格式化字符串的函数str.format(),通过这个函数同样可以对字符串进行格式化处理。在format()函数中,使用“{}”符号来当作格式化操作符

1. 位置参数
[[email protected] python]# cat format-01.py 
#!/usr/bin/pytho
# -*- conding:utf-8 -*-
print ("{0} is {1} years old".format("Wilber", 28))
print ("{} is {} years old".format("Wilber", 28))
print ("Hi, {0}! {0} is {1} years old".format("Wilber", 28))    #还可以通过在括号里填写数字,修改格式化的顺序
执行结果为:
zhangjunchao is 28 years old
zhangjunchao is 28 years old
Hi, zhangjunchao! zhangjunchao is 28 years old

2. 关键字参数,通过key取变量
[[email protected] python]# cat format-02.py 
#!/usr/bin/pytho
# -*- conding:utf-8 -*-
print ("{name} is {age} years old".format(name="zhangjunchao", age=28))
执行结果为:
zhangjunchao is 28 years old

3. 下标参数,通过索引实现
person=['zhangjunchao',28]
print ("我是{0[0]}  我已经{0[1]}岁了".format(person))
pytharm3.6执行结果如下:
我是zhangjunchao  我已经28岁了

4. 填充与对其
格式限定符,语法是{}中带:号
填充常跟对齐一起使用
^、<、>分别是居中、左对齐、右对齐,后面带宽度
:号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充     
[[email protected] python]# cat format-01.py 
#!/usr/bin/pytho
# -*- conding:utf-8 -*-
print ('{:>8}'.format('3.14'))
print ('{:<8}'.format('3.14'))
print ('{:^8}'.format('3.14'))
print ('{:0>8}'.format('3.14'))
print ('{:a>8}'.format('3.14'))
执行结果如下:
[[email protected] python]# python format-01.py 
    3.14
3.14    
  3.14  
00003.14
aaaa3.14

5 浮点数精度
>>> print '{:.4f}'.format(3.1415926)
3.1416
>>> print '{:0>10.4f}'.format(3.1415926)
00003.1416


6 进制
# b、d、o、x分别是二进制、十进制、八进制、十六进制
print '{:b}'.format(11)
print '{:d}'.format(11)
print '{:o}'.format(11)
print '{:x}'.format(11)
print '{:#x}'.format(11)
print '{:#X}'.format(11)

7 千位分隔符
>>> print '{:,}'.format(15700000000)
15,700,000,000
相关标签: python格式化输出