%格式化输出
整数的输出(参照ASCII)
简单提示: %o —— oct 八进制 %d —— dec 十进制(digit ) %x —— hex 十六进制
print('%o' % 20)
print('%d' % 20)
print('%x' % 20)
'''
24
20
14
'''
     
浮点数输出
简单提示: %f —— float 保留小数点后面六位有效数字 %.3f,保留3位小数位 %e —— 保留小数点后面六位有效数字,指数形式输出 %.3e,保留3位小数位,使用科学计数法 %g —— 在保证六位有效数字的前提下,使用小数方式,否则使用科学计数法 %.3g,保留3位有效数字,使用小数或科学计数法
print('%f' % 1.11)  # 默认保留6位小数
# 1.110000
print('%.1f' % 1.11)  # 取1位小数
# 1.1
print('%e' % 1.11)  # 默认6位小数,用科学计数法
# 1.110000e+00
print('%.3e' % 1.11)  # 取3位小数,用科学计数法
# 1.110e+00
print('%g' % 1111.1111)  # 默认6位有效数字
# 111.11
print('%.7g' % 1111.1111)  # 取7位有效数字
# 1111.111
print('%.2g' % 1111.1111)  # 取2位有效数字,自动转换为科学计数法
# 1.1e+03
  
    
    
字符串输出
简单提示: %s —— string 字符串 %10s —— 右对齐,占位符10位 %-10s —— 左对齐,占位符10位 %.2s —— 截取2位字符串 %10.2s —— 10位占位符,截取两位字符串
print('%s' % 'hello world')  # 字符串输出
# hello world
print('%20s' % 'hello world')  # 右对齐,取20位,不够则补位
#          hello world
print('%-20s' % 'hello world')  # 左对齐,取20位,不够则补位
# hello world         
print('%.2s' % 'hello world')  # 取2位
# he
print('%10.2s' % 'hello world')  # 右对齐,取2位
#         he
print('%-10.2s' % 'hello world')  # 左对齐,取2位
# he
 
编写程序,调查用户的姓名、年龄、职业和薪水,然后格式化输出用户信息,格式如下所示
------------info of 张三------------ Name:张三 Age:24 Job:计算机 Salary:52000 ----------------end---------------
name = input("Name:")
age = int(input("Age:"))
job = input("Job:")
salary = int(input("Salary:"))
msg = """
------------info of %s------------
Name:%s
Age:%d
Job:%s
Salary:%d
----------------end---------------
"""%(name,name,age,job,salary)
print(msg)
 
    
 
format 格式化
str.format()函数把字符串当成一个模板,通过传入的参数进行格式化,并且使用大括号 "{ }" 作为特殊字符代替"%"。
{}中不设参数
    
print( "{} {}".format("hello", "world") )   # 不设置指定位置,按默认顺序
# 'hello world'
 
print( "{0} {1}".format("hello", "world") )  # 设置指定位置
# 'hello world'
 
print( "{1} {0} {1}".format("hello", "world") ) # 设置指定位置
# 'world hello world'
 
    
    
{}中设参数
# 通过变量设置参数
print("My name is {name},and I am {age} years old!".format(name = "zhangsan",age = "25"))
# 通过字典设置参数,需要解包
info = {"name": "zhangsan", "age": "25"}
print("My name is {name},and I am {age} years old!".format(**info))
# 通过列表索引设置参数
msg = ["zhangsan","25"]
print("My name is {0[0]},and I am {0[1]} years old!".format(msg))
'''
My name is zhangsan,and I am 25 years old!
My name is zhangsan,and I am 25 years old!
My name is zhangsan,and I am 25 years old!
'''
 
str.format() 格式化数字
简单提示: ^、<、>分别是居中、左对齐、右对齐,后面带宽度。 :号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充。 + 表示在正数前显示+,负数前显示 -。(空格)表示在正数前加空格
  
print("{:.2f}".format( 3.1415926 ))   # 保留小数点后两位
# 3.14
print("{:+.2f}".format( 3.1415926 ))   # 带符号保留小数点后两位
# +3.14
print("{:+.2f}".format( -1 ))   # 带符号保留小数点后两位
# -1.00
print("{:.0f}".format( 2.71828 ))   # 不带小数
# 3	
print("{:0>2d}".format( 5 ))   # 数字补零 (填充左边, 宽度为2)
# 05
print("{:x<4d}".format( 5 ))   # 数字补x (填充右边, 宽度为4)	
# 5xxx	
print("{:x<4d}".format( 10 ))   # 数字补x (填充右边, 宽度为4)
# 10xx	
print("{:,}".format( 1000000 ))   # 以逗号分隔的数字格式
# 1,000,000	
print("{:.2%}".format( 0.25 ))   # 百分比格式
# 25.00%	
print("{:.2e}".format( 1000000000 ))   # 指数记法
# 1.00e+09	
print("|{:>10d}|".format( 13 ))   # 右对齐 (默认, 宽度为10)
# |        13|	
print("|{:<10d}|".format( 13 ))   # 左对齐 (宽度为10)
# |13        |	
print("|{:^10d}|".format( 13 ))   # 中间对齐 (宽度为10)
# |    13    |	
print ("{}今年{{25}}岁了".format("张三")) # 使用大括号 {} 来转义大括号
# 张三今年{25}岁了