Python学习入门基础教程(learning Python)--1.2.2 Python格式化输出基础 .
2013-08-22 14:48
1251 查看
本节讨论为何要格式化输出数据? 先看一段代码吧,本程序的功能是计算月支付金额。
[python]view plaincopyprint?amount_due = 5000.0
monthly_payment = amount_due / 12.0
print('The monthly payment is', monthly_payment)
[python]view plaincopyprint?The monthly payment is416.666666667
Python的内建函数print函数能够将字符串、整数、浮点数等数据结构值输出,但是有的时候输出结果会比较杂乱,格式不好,这时候需要用到Python的另一个内建函数format来格式化数据显示结果。
format基本语法结构如下:
format(数值, “格式字”)
格式字是由数字、点、字符组成
例如 ‘m.nf’ 的m是指整个输出占几个输出的字符位,n的含义是小数点后保留几位小数
举例说明
eg1. 格式化输出浮点数n的作用
[python]view plaincopyprint?amount_due = 5000.0
monthly_payment = amount_due / 12.0
print('The monthly payment is')
print(format(monthly_payment, '.2f'))
[python]view plaincopyprint?The monthly paymentis
416.67
本例'.2f'的含义是输出数据保留2为小数。
eg2. 格式化字符串m的作用
[python]view plaincopyprint?print(format(12345.6789, '12.2f'))
print(format(12345.6789, '.2f'))
从本例输出结果可看出,第1行代码输出时占了12个字符为,有对齐输出;第2行代码左对齐输出。那么如果n + 1 + 小数点前数字个数 > m,是不是就显示不下了呢?我们看下边的例子。
[python]view plaincopyprint?print(format(123456789.0123, '18.2f'))
print(format(123456789.0123, '11.2f'))
print(format(12345.6789, '.2f'))
代码第2行format函数格式控制字是11.2f,意思是print输出占11个字符位,数据共14个字符大于11,怎么办?不能把多余的给删除了吧,python此时处理办法是保证数据正确性,忽略格式控制字m不够长度的情况,左对齐输出正确数据,不管m(这里是11)。
代码第3行,输出时只限定了小数点后保留几位,左对齐输出数据。
♣输出结果为:
[python]view plaincopyprint?amount_due = 5000.0
monthly_payment = amount_due / 12.0
print('The monthly payment is', monthly_payment)
amount_due = 5000.0 monthly_payment = amount_due / 12.0 print('The monthly payment is', monthly_payment)输出结果
[python]view plaincopyprint?The monthly payment is416.666666667
The monthly payment is 416.666666667从上边结果可以看出“416.666666667”这个数据很不人性!希望输出结果保留两位小数最好了!怎么办?
Python的内建函数print函数能够将字符串、整数、浮点数等数据结构值输出,但是有的时候输出结果会比较杂乱,格式不好,这时候需要用到Python的另一个内建函数format来格式化数据显示结果。
format基本语法结构如下:
format(数值, “格式字”)
格式字是由数字、点、字符组成
例如 ‘m.nf’ 的m是指整个输出占几个输出的字符位,n的含义是小数点后保留几位小数
举例说明
eg1. 格式化输出浮点数n的作用
[python]view plaincopyprint?amount_due = 5000.0
monthly_payment = amount_due / 12.0
print('The monthly payment is')
print(format(monthly_payment, '.2f'))
amount_due = 5000.0 monthly_payment = amount_due / 12.0 print('The monthly payment is') print(format(monthly_payment, '.2f'))♣输出结果为:
[python]view plaincopyprint?The monthly paymentis
416.67
The monthly paymentis 416.67
本例'.2f'的含义是输出数据保留2为小数。
eg2. 格式化字符串m的作用
[python]view plaincopyprint?print(format(12345.6789, '12.2f'))
print(format(12345.6789, '.2f'))
print(format(12345.6789, '12.2f')) print(format(12345.6789, '.2f'))♣输出结果为:
从本例输出结果可看出,第1行代码输出时占了12个字符为,有对齐输出;第2行代码左对齐输出。那么如果n + 1 + 小数点前数字个数 > m,是不是就显示不下了呢?我们看下边的例子。
[python]view plaincopyprint?print(format(123456789.0123, '18.2f'))
print(format(123456789.0123, '11.2f'))
print(format(12345.6789, '.2f'))
print(format(123456789.0123, '18.2f')) print(format(123456789.0123, '11.2f')) print(format(12345.6789, '.2f'))数据”123456789.0123“加点号共14个字符, 代码第1行格式控制字是18.2f,意思是print输出占18个字符位,数据共14个字符小于18,右对齐输出没问题,能打印的下。
代码第2行format函数格式控制字是11.2f,意思是print输出占11个字符位,数据共14个字符大于11,怎么办?不能把多余的给删除了吧,python此时处理办法是保证数据正确性,忽略格式控制字m不够长度的情况,左对齐输出正确数据,不管m(这里是11)。
代码第3行,输出时只限定了小数点后保留几位,左对齐输出数据。
♣输出结果为:
[python]view plaincopyprint?123456789.01 123456789.01 12345.68
相关文章推荐
- Python学习入门基础教程(learning Python)--1.2.3 Python格式化输出百分比
- Python学习入门基础教程(learning Python)--1.2.4 Python格式化输出科学计数 .
- Python学习入门基础教程(learning Python)--1.2.1 Python输出语句print基本使用 .
- Python学习入门基础教程(learning Python)--3.2 if-else分支语句 .
- Python学习入门基础教程(learning Python)--8.3 字典常用的方法函数介绍
- Python学习入门基础教程(learning Python)--3.3.3 Python逻辑关系表达式
- Python学习入门基础教程(learning Python)--3.2 if-else分支语句
- Python学习入门基础教程(learning Python)--2.2 Python下的变量基础 .
- Python学习入门基础教程(learning Python)--3.3 分支语句的条件表达式详解 .
- Python学习入门基础教程(learning Python)--5.3 Python写文件基础
- Python学习入门基础教程(learning Python)--3.1Python的if分支语句
- Python学习入门基础教程(learning Python)--2.2.1 Python下的变量解析 .
- Python学习入门基础教程(learning Python)--3.3.2 Python的关系运算
- Python学习入门基础教程(learning Python)--2.3.3Python函数型参详解
- Python学习入门基础教程(learning Python)--3.3.2 Python的关系运算
- Python学习入门基础教程(learning Python)--3.3.1 Python下的布尔表达式
- Python学习入门基础教程(learning Python)--2.2.1 Python下的变量解析
- Python学习入门基础教程(learning Python)--2.3 Python自定义函数传参
- Python学习入门基础教程(learning Python)--3.3.3 Python逻辑关系表达式
- Python学习入门基础教程(learning Python)--6.3 Python的list切片高级