今天写代码时,需要统一化输出格式进行,一时想不起具体细节,用了最笨的方法,现在讲常见的方法进行一个总结。
一、格式化输出
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. javascript 函数的几种声明函数以及应用环境

    本页只列出常用的几种方式,当然还有比如new Function()以及下面三种的组合. 1.函数式声明 例子:function sum(a,b){ return a+b; }; 2.函数表达式声明(匿 ...

  2. C#回调函数的简单讲解与应用例子(最简单讲解,大神绕道)

    本博客一直以来的宗旨就是:用最简单的方式讲清楚不复杂的问题. 因为本人也很菜所以也没法讲太复杂HHHHHH...... 所以如果哪天某个大神看到了觉得讲的有问题欢迎指出. 话不多说进入正题.. ——— ...

  3. 使用不同的namespace让不同的kafka/Storm连接同一个zookeeper

    背景介绍: 需要部署2个kafka独立环境,但是只有一个zookeeper集群. 需要部署2个独立的storm环境,但是只有一个zookeeper集群. ----------------------- ...

  4. Linux命令(八)过滤文本 grep

    grep 命令介绍 grep是一个强大的文本搜索工具命令,用于查找文件中符合指定格式的字符串,支持正则表达式.如不指定任何文件名称,或是文件名为 -,则gerp命令从标准输入设备中读取数据. grep ...

  5. Python开发【第七章】:面向对象进阶

    1.静态方法 通过@staticmethod装饰器即可把其装饰的方法变为一个静态方法,什么是静态方法呢?其实不难理解,普通的方法,可以在实例化后直接调用,并且在方法里可以通过self.调用实例变量或类 ...

  6. Elk 进阶部署

    虚拟机两台: 192.168.1.42 192.168.1.46 系统环境保持一致: cat /etc/redhat-release uname -a elk准备环境保持一致: elasticsear ...

  7. angular 可信的html 指令

    angular.module('app').filter('trustHtml', ($sce) => { return (html) => { if(typeof(html)==&quo ...

  8. 【题解】 Luogu P1402 酒店之王 (二分图匹配)

    懒得复制,原题目戳我 Solution: 这题没想到这么水,就是两个二分图而已 如果房间的二分图没匹配成功就直接进入下一个人 如果房间的二分图匹配成功,食物二分图匹配不成功就把房间的\(be[ ]\) ...

  9. [APIO2018] New Home 新家

    扫描线+线段树+二分答案+set+STL 就是把区间数颜色做得很好 时间看成线段,扫描线 对于某一个询问位置x 二分答案转化,看区间内有没有k种颜色.. 一个区间数颜色的套路是,prei上一个该颜色出 ...

  10. [学习笔记]凸优化/WQS二分/带权二分

    从一个题带入:[八省联考2018]林克卡特树lct——WQS二分 比较详细的: 题解 P4383 [[八省联考2018]林克卡特树lct] 简单总结和补充: 条件 凸函数,限制 方法: 二分斜率,找切 ...