本节讨论为何要格式化输出数据?

先看一段代码吧,本程序的功能是计算月支付金额。

 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格式化输出基础的更多相关文章

  1. python学习教程,史上最全面的python学习路线图

    Python 是Web 开发.游戏脚本.计算机视觉.物联网管理和机器人开发的主流语言之一,随着Python用户可以预期的增长,它还有机会在多个领域里登顶.Python学习路线分享给你. 阶段一是Pyt ...

  2. Python学习教程(learning Python)--2.3.5 Python返回多个值问题

    本节主要学习Python的函数是如何同时返回多个值的问题. 在学习Python的时候惊奇的发现,Python的函数可以同时返回多个值,很有意思. #define function sum def su ...

  3. Python学习教程(learning Python)--3.3.4 Python的if-elif-else语句

    Python的if-elif-else语句用于多种条件判断后选择某个语句块执行.该语句可以利用一系列条件表达式进行检查,并在某个表达式为真的情况下执行相应的代码.需要注意的是,虽然if/elif/el ...

  4. Python学习教程(learning Python)--3.3.3 Python逻辑关系表达式

    在if分支判断语句里的条件判断语句不一定就是一个表达式,可以是多个(布尔)表达式的组合关系运算,这里如何使用更多的关系表达式构建出一个比较复杂的条件判断呢?这里需要再了解一下逻辑运算的基础知识.逻辑关 ...

  5. Python学习教程(learning Python)--3.3.2 Python的关系运算

    如果if的condition不用布尔表达式来做条件判断而采用关系表达式,实际上关系表达式运算的结果要么是True要么是False.下面我们先了解一些有关关系运算符的基础知识,如下表所示. 做个小程序测 ...

  6. Python学习教程(learning Python)--3.3.1 Python下的布尔表达式

    简单的说就是if要判断condition是真是假,Python和C语言一样非0即真,所以如果if的condition是布尔表达式我们可以用True或者非0数(不可是浮点数)表示真,用False或者0表 ...

  7. Python学习教程(learning Python)--3.3 分支语句的条件表达式详解

    本节主要讨论分支语句的条件表达式问题. 在if或者if-else分支控制语句里由于都用到条件判断(表达式是真还是假),条件判断可以是一种关系运算也可以是布尔表达式. 本节将对if及if-else语句的 ...

  8. Python学习教程(learning Python)--3.2 if-else分支语句

    if-else分支语句结构的特点是当conditon条件满足时,执行if下的语句块,当condition条件不满足时执行else下的语句块,也就是说根据条件来控制让某些语句执行,某些语句不被执行. i ...

  9. Python学习教程(learning Python)--3.1 Python的if分支语句

    本节研究一下if分支语句. if分支语句是Python下逻辑条件控制语句,用于条件执行某些语句的控制操作,当if后的条件conditon满足时,if其下的语句块被执行,但当if的控制条件condito ...

随机推荐

  1. UltraEdit 除去行首的行号和空格

    我们在复制代码的时候,经常会发生这种事情. 例如:如下文件(lpc17xx_libcfg.h) 00001 /********************************************* ...

  2. lua绑定c++的时候常见得错误

    1 Error parsing reanslation unit 这种情况,首先来说你的python 2.7以及他的插件安装是完整的,最可能的原因就是自己写的ini文件,header路径错误,可以把这 ...

  3. android 开发进阶自定义控件 类似 TextView

    开发自定义控件的步骤: 1. 继承View: 2.重写构造函数并构造方法中获得我们自定义的属性. 3. 重写onDraw, 4.重写onMeasure 等函数 一.自定义View的属性,首先在res/ ...

  4. 关于conversation generation的论文笔记

    对话模型此前的研究大致有三个方向:基于规则.基于信息检索.基于机器翻译.基于规则的对话系统,顾名思义,依赖于人们周密设计的规则,对话内容限制在特定领域下,实际应用如智能客服,智能场馆预定系统.基于信息 ...

  5. notepad++ tab键用空格缩进

    从工作那天开始到现在,写python代码一直用notepad++来写,尝试几次都改不回eclipse.o(╯□╰)o python脚本中,如果用制表符缩进,经常会报错,必须改用空格缩进代替. 之前设置 ...

  6. Stay Hungry

    保持饥饿,从身体上来说,可以随时保持机动状态,所以,今天的早饭.午饭.晚饭,我都没有吃到饱.等到想要放松的时候,就饱餐一顿,未必不是一种幸福!精神上,保持饥饿,我还不清楚是一种什么样的状态,自然也描述 ...

  7. .NET Reflector反编译的方法

    首先启动.NET Reflector,然后添加进入dll或exe.然后选择Export Source Code...,将反编译后的代码文件,生成到指定目录. 到这一步骤时,稍等一会,就能够在指定目录就 ...

  8. 值得推荐的C/C++框架和库(转)

    值得学习的C语言开源项目 C++ 资源大全 值得学习的C语言开源项目 1.Webbench Webbench是一个在linux下使用的非常简单的网站压测工具.它使用fork()模拟多个客户端同时访问我 ...

  9. Completely change MACE timestamps?

    Hi, One of my friends Sandy asked me about the possibility of completely change MACE timestamps. As ...

  10. Android IOS WebRTC 音视频开发总结(十二)-- sufaceview

    谈到音视频不得不谈谈对视频呈现的理解,为了让大家能有一个更好的理解,先看看android里面SurfaceView的原理,后续陆续分享其绘画原理. 说明:本文是转载的,转载自哪里我也不知道,貌似经过很 ...