2.7 关于数值的格式输出

主要介绍下各种数据类型中的常见格式输出。

1)我们先看看整数中的问题,那就是不同进制的格式化显示。比如对于十进制整数,能否以其他进制来显示?

我们先看利用print函数的格式化功能:

num = 100
print('%x' % num)

输出为: 64。这里的%字符表示标记转换说明符,%x表示以16进制显示数值,这是老版本Python的写法。我们可以使用功能更为强大的一个新的写法。

num = 100
print(format(num, 'b'))
print(format(num, 'o'))
print(format(num, 'x'))
print(format(num, 'd'))

输出为:
1100100
144
64
100

这说明利用format函数来实现格式转换,而且也可以转换为其他进制,这些都是通过format第二个参数来区分,比如b、o、x、d分别表示二进制、八进制、十六进制和十进制。

format也可以把其他进制转化为十进制:

num = 0b100
print(format(num, 'd'))

输出为:4。

也可以使用一些特殊的函数来完成向其他特定进制的转换,比如十进制向其他进制的转换:

num = 100
print(bin(num))
print(oct(num))
print(hex(num))

输出为:
0b1100100
0o144
0x64

但是没有现成的函数可以向十进制函数,因此可以巧妙的使用组合来实现:

num = 0b100
print(int(str(num), 10))

输出为:4。

2)我们再看看浮点数的问题,主要介绍下科学计数法的格式转换。

 比如小数转换为科学计数法:

num = 1 / 3
print('{:.4e}'.format(num))

输出为:
3.3333e-01

其中4可以酌情替换,这里的4表示4为小数位。整个{:.4e}就是一种科学计数法的输出格式。也可以写成效果一样的另外老版本的写法形式:

num = 1 / 3
print('%.4e' % num)

输出内容同上。

反过来,科学计数法也可以转换为正常小数形式:

num = 3.3333e-01
print('{:.3f}'.format(num))

输出为:
0.333

请注意格式中的e换成了f的区别。

也可以使用老版本写法:

num = 3.3333e-01
print('%.3f' % num)

输出内容同上。

3)最后来看看字符串的格式化输出。

字符串的格式化输出内容最多样,实用性也最大。我们通过几个例子来说明。我们先看看格式化变量值的输出。这是最原始的方法,直接使用加号连接字符串形成所需要的输出格式和内容:

strs = '南京'
print('变量的值是' + strs)

输出为:变量的值是南京

也可以使用format格式来进行:

strs = '南京'
print('变量的值是{}'.format(strs))

输出内容同上。print函数中参数的花括号{}表示占位符,可以理解为一个空,等待format函数的参数变量的值来填充。而且即使是其他数据类型也可以:

num = 1
print('变量的值是{}'.format(num))

输出为:
变量的值是1

显然如果是+写法,还需要转换数据类型,因此这个写法更为简单。

对于多个变量,依然方便:

strs1 = '南京'
strs2 = '江苏'
print('{}是{}省会'.format(strs1, strs2))

输出为:
南京是江苏省会

也可以这样写:

strs1 = '南京'
strs2 = '江苏'
print(f'{strs1}是{strs2}省会')

输出内容同上,f前缀表示所有花括号中的就是要输出的对应变量。

也可以使用%形式的占位符实现同样的效果,如%s表示字符串:

strs1 = '南京'
strs2 = '江苏'
print('%s是%s省会' % (strs1, strs2))

输出内容同上。后面一些练习我们还会用到一些format函数其他的格式用法,届时我们会边学边用。
 

配套学习资源、慕课视频:

Python大数据分析-李树青icon-default.png?t=M0H8https://www.njcie.com/python/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

leeshuqing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值