今天写代码时,需要统一化输出格式进行,一时想不起具体细节,用了最笨的方法,现在讲常见的方法进行一个总结。
一、格式化输出
1、整数的输出
直接使用'%d'代替可输入十进制数字:
  1. >>> print 'i am %d years old'%25
  2. i am 25 years old
%x —— hex 十六进制
%d —— dec 十进制
%o —— oct 八进制
  1. >>> num=10
  2. >>> print'dec=%d, oct=%o, hex=%x'%(num,num,num)
  3. dec=10, oct=12, hex=a

2、浮点数输出

(1)格式化输出
正常情况下,与整数的输出一样,使用‘%f’替换,默认情况下,保留小数点后面6位有效数字,如:
  1. >>> f=3.1415
  2. >>> print 'pi=%f'%f
  3. pi=3.141500
  4. >>> f=3.141500000
  5. >>> print 'pi=%f'%f
  6. pi=3.141500
除‘%f’外,还可以用‘%e’、‘%g’表示浮点数,‘%e’用指数形式输出,‘%g’根据实际情况输出,默认情况下最多保留6位有效数字。
具体使用如下所示:
  1. >>> numb1=0.000033333
  2. >>> print '%f, %e, %g'%(numb1,numb1,numb1)
  3. 0.000033, 3.333300e-05, 3.3333e-05
  4. >>> numb2=0.3333
  5. >>> print '%f, %e, %g'%(numb2,numb2,numb2)
  6. 0.333300, 3.333000e-01, 0.3333
上图可知,‘%f’和‘%e’默认情况下都会保留小数点后面六位有效数字,‘%g’在保证六位有效数字的前提下,使用小数方式,否则使用科学计数法。
另外上述几种输出方式都可以自定义精度,

  1. >>> numb1=0.000003333333
  2. >>> print '%.3f, %.3e, %.3g'%(numb1,numb1,numb1)
  3. 0.000, 3.333e-06, 3.33e-06
  4. >>> numb3=1234567.1234567
  5. >>> print '%f, %e, %g'%(numb3,numb3,numb3)
  6. 1234567.123457, 1.234567e+06, 1.23457e+06
  7. >>> print '%.3f, %.3e, %.3g'%(numb3,numb3,numb3)
  8. 1234567.123, 1.235e+06, 1.23e+06
(2)内置round()
除了上面所示的格式化输出外,还可以使用内置函数round()控制浮点数的精度,如下图所示:
  1. >>> round(2.3)
  2. 2.0
  3. >>> round(2.5)
  4. 3.0
  5. >>> round(2.7)
  6. 3.0
  7. >>> round(2.567)
  8. 3.0
round()函数如果只有一个参数,不指定位数的时候,返回的是一个整数,而且是最靠近的整数,类似于四舍五入,当指定取舍的小数点位数的时候,一般情况也是使用四舍五入的规则,但是碰到.5的情况时,如果要取舍的位数前的小数是奇数,则直接舍弃,如果是偶数则向上取舍,如下图所示:
  1. >>> round(2.5555,3)
  2. 2.555
  3. >>> round(2.456,2)
  4. 2.46
  5. >>> round(2.665,2)
  6. 2.67
  7. >>> round(2.675,2)
  8. 2.67
  9. >>> round(2.655,2)
  10. 2.65
  11. >>> round(2.635,2)
  12. 2.63
3、字符串输出
字符串可用'%s'输出,如:
  1. >>> print 'i love %s'%'python'
  2. i love python
另外也对对字符串进行截取,只输出部分,如:
  1. >>> print 'i love %.2s'%'python'
  2. i love py
有时候在输出字符串时希望可以输出格式进行调整,此时可以利用占位符对格式进行调整,如:
  1. >>> print 'i love %s'%'python'
  2. i love python
  3. >>> print 'i love %.2s'%'python'
  4. i love py
  5. >>> print 'i love %3.2s'%'python'
  6. i love  py
  7. >>> print 'i love %10.2s'%'python'
  8. i love         py
  9. >>> print 'i love %-10.2s'%'python'
  10. i love py
  11. >>> print 'i love %-10.2s !'%'python'
  12. i love py         !
单独采用‘%s’时,直接输出字符串,‘%10s’表示在字符串前面添加占位符,并且字符串采用右对齐的方式,‘%-10s’同样道理,不过字符串采用左对齐的方式。

  1. >>> fmt='%10s%10s%10s'
  2. >>> print fmt%('name','age','sex')
  3. name       age       sex
  4. >>> fmt='%-10s%-10s%-10s'
  5. >>> print fmt%('name','age','sex')
  6. name      age       sex
  7. >>> print fmt%('sqxu',25,'boy')
  8. sqxu      25        boy
上述为基本的格式化输出,其中

%s     %c     %d     %i     %u    %o     %x    %X     %e     浮点数格式1

%E     浮点数格式2

%f     浮点数格式3

%g    浮点数格式4

%G    浮点数格式5

%%     文字%

另外在格式转换时,可能会用到转移字符,常用的转移字符如下所示:

转义字符

\(在行尾时)

\\

\'

\"

\a

\b

\e

\000

\n

\v

\t

\r

\f

\oyy

\xyy

\other

二、format()函数

相对基本格式化输出采用‘%’的方法,format()功能更强大,该函数把字符串当成一个模板,通过传入的参数进行格式化,并且使用大括号‘{}’作为特殊字符代替‘%’。
(1)通过位置替换
  1. >>> print '{0} {1}'.format('hello','world')
  2. hello world
  3. >>> print '{} {}'.format('hello','world')
  4. hello world
  5. >>> print '{0} {1} {0}'.format('hello','world')
  6. hello world hello
 
 
print 'i love {python}'.format(python='you')

  • i love you
(3)其他使用方法如:
可以指定输出长度和输出的对齐方式,其中对齐方式有一下几种:
< (默认)左对齐
> 右对齐
  1. >>> print format('string','2s')
  2. string
  3. >>> print format(3.14151617,'.5f')
  4. 3.14152
  5. >>> print '{0:>10}'.format('sqxu')    #10个占位符,右对齐
  6. sqxu
  7. >>> print '{0:4.2f}'.format(3.141516)
  8. 3.14
  9. >>> print '{0:6.2f}'.format(3.141516)
  10. 3.14
  11. >>> print '{0:>6.2f}'.format(3.141516)
  12. 3.14
  13. >>> print '{1:<10},{0:<15}'.format('sqxu','USTC')
  14. USTC      ,sqxu
  15. >>> print 'name={name},age={age}'.format(name='sqxu',age=25)
  16. name=sqxu,age=25
同上述格式化输出一样,也可以通过格式化指示符来控制格式。
例如,浮点数可以被格式化为一般格式或用幂来表示。
'b' - 二进制。将数字以2为基数进行输出。
'c' - 字符。在打印之前将整数转换成对应的Unicode字符串。
'd' - 十进制整数。将数字以10为基数进行输出。
'o' - 八进制。将数字以8为基数进行输出。
'x' - 十六进制。将数字以16为基数进行输出,9以上的位数用小写字母。
'e' - 幂符号。用科学计数法打印数字。用'e'表示幂。
'g' - 一般格式。将数值以fixed-point格式输出。当数值特别大的时候,用幂形式打印。
'n' - 数字。当值为整数时和'd'相同,值为浮点数时和'g'相同。不同的是它会根据区域设置插入数字分隔符。
'%' - 百分数。将数值乘以100然后以fixed-point('f')格式打印,值后面会有一个百分号。
  1. >>> print '{0:b}'.format(3)
  2. 11
  3. >>> print '{0:c}'.format(30)
  4. >>> print '{0:d}'.format(3)
  5. 3
  6. >>> print '{0:o}'.format(10)
  7. 12
  8. >>> print '{0:x}'.format(30)
  9. 1e
  10. >>> print '{0:e}'.format(3)
  11. 3.000000e+00
  12. >>> print '{0:f}'.format(3)
  13. 3.000000
  14. >>> print '{0:g}'.format(3)
  15. 3
  16. >>> print '{0:n}'.format(3)
  17. 3
  18. >>> print '{0:n}'.format(3.1415)
  19. 3.1415
  20. >>> print '{0:%}'.format(3.15)
  21. 315.000000%
format()函数还有其他一些应用,使用起来也很方便,在此不一一赘述。
 
 
转自
 
python格式化输出 - CSDN博客 http://blog.csdn.net/wchoclate/article/details/42297173

python格式化输出【转】的更多相关文章

  1. Python格式化输出的三种方式

    Python格式化输出的三种方式 一.占位符 程序中经常会有这样场景:要求用户输入信息,然后打印成固定的格式比如要求用户输入用户名和年龄,然后打印如下格式:My name is xxx,my age ...

  2. python格式化输出及大量案例

    python格式化输出符号及大量案例 1.格式化输出符号 python格式化输出符号 格式化符号 含义 %c 转化成字符 %r 优先使用repr()函数进行字符串转化 %s 转换成字符串,优先使用st ...

  3. Python 格式化输出

    转载 今天写程序又记不清格式化输出细节了--= =索性整理一下. 注意: 与C/C++  不同的是这里括号后面不需要加' , '号. python print格式化输出. 1. 打印字符串 print ...

  4. Python格式化输出

    今天写程序又记不清格式化输出细节了……= =索性整理一下. python print格式化输出. 1. 打印字符串 print ("His name is %s"%("A ...

  5. [No000063]Python格式化输出

    python print格式化输出. 1. 打印字符串 print ("His name is %s"%("Aviad")) 效果: 2.打印整数 print ...

  6. [转]Python格式化输出

    今天写程序又记不清格式化输出细节了……= =索性整理一下. python print格式化输出. 1. 打印字符串 print ("His name is %s"%("A ...

  7. Python学习教程(learning Python)--1.2.2 Python格式化输出基础

    本节讨论为何要格式化输出数据? 先看一段代码吧,本程序的功能是计算月支付金额. amount_due = 5000.0 #年支付金额 monthly_payment = amount_due / 12 ...

  8. Python格式化输出%s和%d

    python print格式化输出. 1. 打印字符串 print ("His name is %s"%("Aviad")) 效果: 2.打印整数 print ...

  9. Python 格式化输出 —— 小数转化为百分数

    比如将 0.1234 转化为 12.34% 的形式: rate = .1234 print('%.2f%%' % (rate * 100)) 第一个百分号和 .2f 相连,表示浮点数类型保留小数点后两 ...

随机推荐

  1. XML中<beans>属性

    <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w ...

  2. Book Review 《构建之法》-2

    -敏捷流程包括了几大原则:Backlog.burn-down.Sprint.Scrum. 敏捷开发注重个人之间的交流,提倡尽早的交付有价值的软件满足顾客的需求, 在开发过程中不断与客户进行交互,变化. ...

  3. JAVA面对对象(一)——封装

    1.封装思想:将对象的属性和行为封装起来的载体是类,类通常对客户隐藏其实现的细节 2.封装就是将属性私有化(private),并提供公共的方法(public)访问私有属性 3.通过封装,实现对属性数据 ...

  4. Alpha冲刺——day7

    Alpha冲刺--day7 作业链接 Alpha冲刺随笔集 github地址 团队成员 031602636 许舒玲(队长) 031602237 吴杰婷 031602220 雷博浩 031602634 ...

  5. Alpha冲刺第6天

    Alpha第六天 1.团队成员 郑西坤 031602542 (队长) 陈俊杰 031602504 陈顺兴 031602505 张胜男 031602540 廖钰萍 031602323 雷光游 03160 ...

  6. 12th 本周工作量及进度统计

    本周PSP: C(类别) C(内容) S(开始时间) ST(结束时间) I(中断时间) T(实际时间) 活动 1日—3日 用户调查 12月1日21:00 12月3日12:00 25小时 14小时 活动 ...

  7. js浮点数保留一位小数

    function changeTwoDecimal_f(x) { var f_x = parseFloat(x); if (isNaN(f_x)) { alert('function:changeTw ...

  8. 深入理解C++中的异常处理机制

    异常处理 增强错误恢复能力是提高代码健壮性的最有力的途径之一,C语言中采用的错误处理方法被认为是紧耦合的,函数的使用者必须在非常靠近函数调用的地方编 写错误处理代码,这样会使得其变得笨拙和难以使用.C ...

  9. Alpha、伪Beta 发布后,夏一鸣的个人感想与体会

    伪Beta发布在4月15日拉开了帷幕,夏一鸣代表OneZero团队上台进行了Account的发布.产品发布成功,但依然存在问题和不足.以下就Alpha.伪Beta 发布谈一谈我自己(夏一鸣)的想法. ...

  10. 2007-10的PWX OracleCdc问题解答

    1. 捕获增量的底层机制是什么?(例如日志.触发器.LogMiner) PWX利用Oracle的LogMiner来提取来自于Oracle的增量, LogMiner是由Oracle数据库提供的,如果当前 ...