2021-10-06

本文详细介绍了Python和C++中字符串的格式化输出方法,包括进制转换、浮点数输出、内置round()函数的使用、format()函数的功能以及对齐操作。在Python中,% operator用于格式化输出,而C++则使用printf()函数。此外,还展示了各种格式化选项,如保留小数、对齐方式等,并提供了示例代码及其运行结果。
摘要由CSDN通过智能技术生成

ACM集训 --格式化输出

  • Python 字符串的格式化输出

1.进制转换

		  %o —— oct 八进制
	      %d —— dec 十进制
		  %x —— hex 十六进制			  

代码

s="十进制:%d"%(123)
s="八进制:%o"%(123)
s="十六进制:%x"%(123)

运行结果
运行结果
2. 浮点数输出

%f ——保留小数点后面六位有效数字
%.f ——保留整数部分     
%.3f,保留3位小数位
%e ——保留小数点后面六位有效数字,指数形式输出   
%.3e,保留3位小数位,使用科学计数法
%g在保证六位有效数字的前提下,使用小数方式,否则使用科学计数法   
%.3g,保留3位有效数字,使用小数或科学计数法

代码

print('%.f'%121.11)
print('%.3f'%121.11)
print('%e'%121.11)
print('%.3e'%121.11)
print('%g'%121.11)
print('%.3g'%121.11)

运行结果
在这里插入图片描述
3. 内置round()

传入2个参数值时rount(a,b),
a–这是一个数字表达式
b–表示从小数点到最后四舍五入的位数。默认值为0
round()函数只有一个参数,不指定位数的时候,返回一个整数,而且是最靠近的整数,类似于四舍五入,当指定取舍的小数点位数的时候,一般情况也是使用四舍五入的规则,但是碰到.5的情况时,如果要取舍的位数前的小数是奇数,则直接舍弃,如果是偶数则向上取舍。

代码

a=1.23
a=round(a)
a=1.2311
a=round(a,3)
a=1.5
a=round(a)
a=4.5
a=round(a)

运行结果
在这里插入图片描述
4.内置format()

相对基本格式化输出采用‘%’的方法,format()功能更强大,该函数把字符串当成一个模板,通过传入的参数进行格式化,并且使用大括号‘{}’作为特殊字符代替‘%’
位置匹配   
(1)不带编号,即“{}”   
(2)带数字编号,可调换顺序,即“{1}”、“{2}”
(3)带关键字,即“{a}”、“{tom}”
代码

print('我是{}'.format('ACM队员'))
print('我是{0},{1}'.format('ACM','队员'))
print('{a} {tom} {a}'.format(tom='ACM',a='我来了'))

运行结果
在这里插入图片描述
5.对齐操作

%10s——右对齐,占位符10位
%-10s——左对齐,占位符10位
%.2s——截取2位字符串
%10.2s——10位占位符,截取两位字符串
< (默认)左对齐、> 右对齐、^ 中间对齐、= (只用于数字)在小数点后进行补齐

  • C++字符串的格式化输出
  1. printf()函数
    类似于%d这样的符号叫做转换说明,他们指定了如何把数据转换成可显示的形式
    在这里插入图片描述

  2. 对齐操作

代码

#include <stdio.h>
#define PAGES 931
int main (void)
{
printf("*%d*\n",PAGES);
printf("*%2d*\n",PAGES);
printf("*%10d*\n",PAGES);
printf("*%-10d*\n",PAGES);
return 0;
}

运行结果

*931*
*931*
*     931*
*931       *
  1. 保留小数点操作
#include <stdio.h>
int main (void)
{
const double RENT=3852.99;

printf("*%f*\n",RENT);
printf("*%e*\n",RENT);
printf("*%4.2f*\n",RENT);
printf("*%3.1f*\n",RENT);
printf("*%10.3f*\n",RENT);
printf("*%10.3e*\n",RENT);
printf("*%+4.2f*\n",RENT);
printf("*%000.2f*\n",RENT);
return 0;
}

运行结果

*3852.990000*
*3.85299e+03*
*3852.99*
*3853.0*
*  3852.990*
* 3.863e+03*
*+3852.99*
*0003852.99*

待续
2021,10,6

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值