Python基础05--格式化输出

格式化输出

python格式化输出有两种方式:百分号和format
format的功能要比百分号方式强大,其中format独有的可以自定义字符填充空白、字符串居中显示、转换二进制、整数自动分割、百分比显示 等功能是百分号方式不能相比的

1、%格式化输出

是一个占位符,会被表达式(数字、字符串、加减乘除、变量、常量等各种形式)的值代替

1.1 按位置顺序依次输出
print('姓名%s, 年龄%d岁' % ('张三', 20))
# >>>姓名张三, 年龄20岁
1.2 自定义key输出
print("姓名%(name)s, 年龄%(age)d岁" %{'name':'张三', 'age':20})
# >>>姓名张三, 年龄20岁
1.3 自定义宽度、小数、对齐
print("姓名%(name)+2s, 年龄 %(age)d 岁, 身高 %(height).2f 米" % {'name':'张三','age':20,'height':1.7512})
# >>>姓名张三, 年龄 20 岁, 身高 1.75 米
#定义名字宽度为2,并右对齐.定义身高为浮点类型,保留小数点2位
1.4 进制转换
print( "原数: %d, 八进制:%o , 十六进制:%x" % (15,15,15))
# >>>原数: 15, 八进制:17 , 十六进制:f
1.5 百分比显示
print("百分比显示:%.2f%%" % 75)
# >>>百分比显示:75.00%
1.6 %格式输出符
  • %d、%i:将整数、浮点数转换为带符号的十进制表示
  • %r :使用 repr() 函数将表达式转换为字符串
  • %s :使用 str() 函数将表达式转换为字符串
  • %o :将整数转换为带符号的八进制表示
  • %x、%X:将整数转换为带符号的十六进制表示
  • %e %E:将整数、浮点数转化为科学计数法表示的浮点数
  • %f、%F:将整数、浮点数转化为十进制浮点数
  • %g :智能选择使用 %f 或 %e 格式,自动调整将整数、浮点数转换成 浮点型或科学计数法表示(超过6位数用科学计数法),并将其格式化到指定位置(如果是科学计数则是e)
  • %G:智能选择使用 %F 或 %E 格式,自动调整将整数、浮点数转换成 浮点型或科学计数法表示(超过6位数用科学计数法),并将其格式化到指定位置(如果是科学计数则是E)
  • %c :格式化字符及其 ASCII 码,整数:将数字转换成其unicode对应的值,10进制范围为 0 <= i <= 1114111(py27则只支持0-255);字符:将字符添加到指定位置
  • %+ 右对齐;正数前加正号,负数前加负号;
  • %- 左对齐;正数前无符号,负数前加负号;
  • %空格 右对齐;正数前加空格,负数前加负号;
  • %0 右对齐;正数前无符号,负数前加负号;用0填充空白处
  • %,当字符串中存在格式化标志时,需要用 %%表示一个百分号 注:Python中百分号格式化是不存在自动将整数转换成二进制表示的方式

2、format格式化

format函数把字符串当成一个模板,通过传入的参数进行格式化,使用大括号{}表示;格式转换在占位符后使用’:’,表达式{x:f}.format(x=99.9)

有已知变量:

name = '张三'
age = 20
sex = '男'
score =  99.9
2.1 通过位置匹配
2.1.1 不指定位置,format值会依次传入缺省位置内。
print('名字{}, 年龄{}岁, 性别{}'.format(name, age, sex))
# >>>名字张三, 年龄20岁, 性别男
2.1.2 指定位置,format依据指定下标进行传入。
print('名字{1}, 年龄{1}岁, 性别{1})'.format(name, age, sex))
# >>>名字20, 年龄20岁, 性别20
2.2 通过名字匹配
2.2.1 索引匹配参数
print('姓名{name}, 年龄{age}岁, 性别{sex}, 分数{score:.2f}' .format (name = '张三', age = 18, sex = '男', score = 99.9))
# >>>姓名张三, 年龄18岁, 性别男, 分数99.9
2.2.2 字典匹配参数
info = {'name': '张三', 'score': 99.9, 'age': 18, 'sex': '男', '百分比': 0.99}
print('姓名{name}, 年龄{age}岁, 性别{sex}, 分数{score :4.3f} , 百分比{百分比:.3%}'.format(**info))
# >>>姓名张三, 年龄18岁, 性别男, 分数99.900 , 百分比99.000%
2.2.3 format变形用法,以f‘{}’形式表达
print(f'姓名{name}, 年龄{age}岁, 性别{sex}, 分数{score:4.3f}')
# >>>姓名张三, 年龄20岁, 性别男, 分数99.900

拓展:常用转义字符

  • (在行尾) 续行符
  • \ 反斜杠符号
  • \’ 单引号
  • \” 双引号
  • \a 响铃
  • \b 退格
  • \e 转义
  • \000 空
  • \n 换行
  • \v 纵向制表
  • \t 横向制表
  • \r 回车
  • \f 翻页
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值