Python学习教程(learning Python)--1.2.2 Python格式化输出基础
本节讨论为何要格式化输出数据?
先看一段代码吧,本程序的功能是计算月支付金额。
amount_due = 5000.0 #年支付金额
monthly_payment = amount_due / 12.0 #求月支付金额
print('The monthly payment is', monthly_payment) #输出
输出结果
The monthly payment is 416.666666667
从上边结果可以看出“416.666666667”这个数据很不人性!希望输出结果保留两位小数最好了!怎么办?
Python的内建函数print函数能够将字符串、整数、浮点数等数据结构值输出,但是有的时候输出结果
会比较杂乱,格式不好,这时候需要用到Python的另一个内建函数format来格式化数据显示结果。
基本语法结构如下:
format(数值, “格式字”)
- 格式字是由数字、点、字符组成
- ‘m.nf’ 的m是指整个输出占几个输出的字符位,n的含义是小数点后保留几位小数
举例说明
eg1. 格式化输出浮点数n的作用
amount_due = 5000.0
monthly_payment = amount_due / 12.0
print('The monthly payment is')
print(format(monthly_payment, '.2f'))
♣输出结果为:
The monthly payment is 416.67
本例'.2f'的含义是输出数据保留2为小数。
eg2. 格式化字符串m的作用
print(format(12345.6789, '12.2f')) print(format(12345.6789, '.2f'))
♣输出结果为:
12345.68 12345.68
从本例输出结果可看出,第1行代码输出时占了12个字符为,有对齐输出;第2行代码左对齐输出。
那么如果n + 1 + 小数点前数字个数 > m,是不是就显示不下了呢?我们看下边的例子
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行,输出时只限定了小数点后保留几位,左对齐输出数据。
♣输出结果为:
123456789.01 123456789.01 12345.68
智普教育Python www.jeapedu.com
———————————————————————————————————————————
Python学习教程(learning Python)--1.2.2 Python格式化输出基础的更多相关文章
- python学习教程,史上最全面的python学习路线图
Python 是Web 开发.游戏脚本.计算机视觉.物联网管理和机器人开发的主流语言之一,随着Python用户可以预期的增长,它还有机会在多个领域里登顶.Python学习路线分享给你. 阶段一是Pyt ...
- Python学习教程(learning Python)--2.3.5 Python返回多个值问题
本节主要学习Python的函数是如何同时返回多个值的问题. 在学习Python的时候惊奇的发现,Python的函数可以同时返回多个值,很有意思. #define function sum def su ...
- Python学习教程(learning Python)--3.3.4 Python的if-elif-else语句
Python的if-elif-else语句用于多种条件判断后选择某个语句块执行.该语句可以利用一系列条件表达式进行检查,并在某个表达式为真的情况下执行相应的代码.需要注意的是,虽然if/elif/el ...
- Python学习教程(learning Python)--3.3.3 Python逻辑关系表达式
在if分支判断语句里的条件判断语句不一定就是一个表达式,可以是多个(布尔)表达式的组合关系运算,这里如何使用更多的关系表达式构建出一个比较复杂的条件判断呢?这里需要再了解一下逻辑运算的基础知识.逻辑关 ...
- Python学习教程(learning Python)--3.3.2 Python的关系运算
如果if的condition不用布尔表达式来做条件判断而采用关系表达式,实际上关系表达式运算的结果要么是True要么是False.下面我们先了解一些有关关系运算符的基础知识,如下表所示. 做个小程序测 ...
- Python学习教程(learning Python)--3.3.1 Python下的布尔表达式
简单的说就是if要判断condition是真是假,Python和C语言一样非0即真,所以如果if的condition是布尔表达式我们可以用True或者非0数(不可是浮点数)表示真,用False或者0表 ...
- Python学习教程(learning Python)--3.3 分支语句的条件表达式详解
本节主要讨论分支语句的条件表达式问题. 在if或者if-else分支控制语句里由于都用到条件判断(表达式是真还是假),条件判断可以是一种关系运算也可以是布尔表达式. 本节将对if及if-else语句的 ...
- Python学习教程(learning Python)--3.2 if-else分支语句
if-else分支语句结构的特点是当conditon条件满足时,执行if下的语句块,当condition条件不满足时执行else下的语句块,也就是说根据条件来控制让某些语句执行,某些语句不被执行. i ...
- Python学习教程(learning Python)--3.1 Python的if分支语句
本节研究一下if分支语句. if分支语句是Python下逻辑条件控制语句,用于条件执行某些语句的控制操作,当if后的条件conditon满足时,if其下的语句块被执行,但当if的控制条件condito ...
随机推荐
- UVA 10892 - LCM Cardinality
Problem F LCM Cardinality Input: Standard Input Output: Standard Output Time Limit: 2 Seconds A pair ...
- 最小生成树Kruskal算法
Kruskal算法就是把图中的所有边权值排序,然后从最小的边权值开始查找,连接图中的点,当该边的权值较小,但是连接在途中后会形成回路时就舍弃该边,寻找下一边,以此类推,假设有n个点,则只需要查找n-1 ...
- 剑指Offer:面试题6——重建二叉树(java实现)
问题描述:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.假设输入的前序遍历和中序遍历的结果中都不包含重复的数字. 例如: 输入:前序{1,2,4,7,3,5,6,8},中序{4,7,2,1 ...
- POJ1298_The Hardest Problem Ever_最难的问题_Caesar 密码_C++
题目:http://poj.org/problem?id=1298 好吧,给了题目也看不懂……给出翻译(题目名翻译是:最难的问题,233333) 这一看就是老师给出题解: 然而没有什么用哈 最快的办法 ...
- selenium简介
Selenium是一个开源的和便携式的自动化软件测试工具,用于测试Web应用程序有能力在不同的浏览器和操作系统运行.Selenium真的不是一个单一的工具,而是一套工具,帮助测试者更有效地基于Web的 ...
- OSChina中远程GIT仓库同步探索
GIT平台在OSChina中的搭建帮了我们很大的忙,但如何将本地GIT仓库上传至OSChina的远程仓库,相信这是一个艰难的坎,今天我就在此总结我的成功经验,帮助大家,共同学习.由于条件有限,我全部的 ...
- iOS 7中使用UINavigationController进行pop崩溃
最近在一个项目中遇到一种情况,push到一个界面,如果那个界面未请求到数据,则直接pop回去,然而使用 [self.navigationController popViewControllerAnim ...
- JS实现联想输入(二)
JS实现联想输入(一)是主要针对单列结构的JSON格式的数据的,如果想满足多列结构的JSON格式的数据,也是非常容易的,其解决方案有至少有三种选择: 1:在后台Action方法中将多列的值拼成单列结构 ...
- java.lang.NoSuchMethodException
这个异常遇到过若干次,提示信息也比较清楚的指示出它的特点,当无法找到某一特定方法时,就会抛出该异常! 我所遇到的抛出此异常的情景主要有以下两种: 1:对应的JAVA类中没有对应的属性,也就是说在页面的 ...
- ffmpeg视频格式转换(Java)
命令: 高品质: ffmpeg -i E:\input\a.wmv -ab 128 -acodec libmp3lame -ac 1 -ar 22050 -r 29.97 -qscale 4 -y E ...