python学习笔记2.2-print函数以及格式化输出

上一节已经安装好运行环境以及各种库,接下来就要开始正式编程了。与国际接轨,接触一门语言的第一次编程,一定是在屏幕上打印“hello world”。python的打印输出有两种方式,一个是使用print() 函数,另一个就是使用format方法格式化输出。

print()函数

  • print()基础 在使用python的过程中,如果对于某一个函数不懂,最好的方式就是查看该函数源码接口,在pycharm中直接双击该函数就可以跳转到该函数的源码接口处,当然在python原生脚本就只能使用help()函数来获取接口内容啦。得到print函数的接口为:
print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
    Prints the values to a stream, or to sys.stdout by default.
    Optional keyword arguments:
    file:  a file-like object (stream); defaults to the current sys.stdout.
    sep:   string inserted between values, default a space.
    end:   string appended after the last value, default a newline.
    flush: whether to forcibly flush the stream.

由于Python中一切都是对象,所以print()可以输出任何东西。同时还需要注意到end的默认参数是'\n' 也就是默认是换行

需要注意的是:flush和sep也是可以修改的,达到你想要的效果。

print(2+7)             # 输出计算结果
print('hello world')   #输出字符串
x = np.arange(0,3)        
print(x)               #输出数组
y = 0.05
print('这个小数是:%f'%y)
print('这个整数是:%d'%y)
print('这个字符串是:%s'%y)

2 print格式化输出 print()输出是能够定义许多格式,命令:%+标记符

#--------------------------------------------------
%d 十进制整型
%s 字符串
%f 浮点型

%x 十六进制
%o 八进制
%r 万能占位符,什么都可以用
如果需要输出二进制则先转化:bin()

例如:
x = 0x30
print('%x,%d,%o'%(x,x,x))  
print(bin(x)) 
print('%r'%('nishi'))
#----------------------------------------------------

3 print输出精度控制 有时候print输出需要控制精读,则需要以下一些技巧: '%(-)数字.数字f'%输出内容,

有括号里的负号(-)的时候,输出内容左对齐 没有括号里的负号(-)的时候,输出内容右对齐 第一个数字代表: 整数+小数的总位数 第二个数字代表:小数部分的位数

print('%f'%np.pi)    #默认精度
print('%10.4f'%np.pi)#右对齐,总共10位,小数部分4位
print('%-9.5f'%np.pi)#左对齐,总共9位,小数部分5位

4 print输出不换行 前面说过,由于默认end参数是换行,所以你想不换行输出的话修改end参数就好,甚至你可以自定义结尾。

print('hello world',end = '')#不换行结尾
  • print()高级- 修改打印输出的颜色 Python初学者都会有一个困惑,print打印控制台只有黑底白字或者白底黑字,非常的单调。相信大多数人也有一颗和我一样想改变输出字体颜色或者字体背景的想法,经过网上搜索以及尝试之后,总结并和大家分享。

1. 命令格式

格式:\033[显示方式;前景色;背景色m
  
说明:
 前景色            背景色           颜色
---------------------------------------
30                40              黑色
31                41              红色
32                42              绿色
33                43              黃色
34                44              蓝色
35                45              紫红色
36                46              青蓝色
37                47              白色
 显示方式           意义
----------------------------------------
0                终端默认设置
1                高亮显示
4                使用下划线
5                闪烁
7                反白显示
8                不可见

例如:print('\033[1;32;45m',__doc__)

也可以单用:print('\033[33m,__doc__)

format格式化输出

ython中格式化输出字符串使用format()函数, 字符串即类, 可以使用方法;Python是完全面向对象的语言, 任何东西都是对象;字符串的参数使用{NUM}进行表示,0, 表示第一个参数,1, 表示第二个参数, 以后顺次递加; 使用":", 指定代表元素需要的操作, 如":.3"小数点三位, ":8"占8个字符空间等;还可以添加特定的字母, 如:

'b' - 二进制. 将数字以2为基数进行输出.
'c' - 字符. 在打印之前将整数转换成对应的Unicode字符串.
'd' - 十进制整数. 将数字以10为基数进行输出.
'o' - 八进制. 将数字以8为基数进行输出. 
'x' - 十六进制. 将数字以16为基数进行输出, 9以上的位数用小写字母.
'e' - 幂符号. 用科学计数法打印数字, 用'e'表示幂. 
'g' - 一般格式. 将数值以fixed-point格式输出. 当数值特别大的时候, 用幂形式打印. 
'n' - 数字. 当值为整数时和'd'相同, 值为浮点数时和'g'相同. 不同的是它会根据区域设置插入数字分隔符. 
'%' - 百分数. 将数值乘以100然后以fixed-point('f')格式打印, 值后面会有一个百分号.

数字(0, 1, ...)即代表format()里面的元素, 所以可以使用"."调用元素的方法;

1 通过位置

语法:它通过{}和:来代替%。

In [1]: '{0},{1}'.format('kzc',18) 
Out[1]: 'kzc,18'
In [2]: '{},{}'.format('kzc',18) 
Out[2]: 'kzc,18'
In [3]: '{1},{0},{1}'.format('kzc',18) 
Out[3]: '18,kzc,18'

字符串的format函数可以接受不限个参数,位置可以不按顺序,可以不用或者用多次,不过2.6不能为空{},2.7才可以。

2 通过关键字参数:

In [5]: '{name},{age}'.format(age=18,name='kzc') 
Out[5]: 'kzc,18'

3 通过对象属性

class Person: 
  def __init__(self,name,age): 
    self.name,self.age = name,age 
    def __str__(self): 
      return 'This guy is {self.name},is {self.age} old'.format(self=self) 
In [2]: str(Person('kzc',18)) 
Out[2]: 'This guy is kzc,is 18 old'

4 通过下标

In [7]: p=['kzc',18]
In [8]: '{0[0]},{0[1]}'.format(p)
Out[8]: 'kzc,18'

有了这些便捷的“映射”方式,我们就有了偷懒利器。基本的python知识告诉我们,list和tuple可以通过“打散”成普通参数给函数,而dict可以打散成关键字参数给函数(通过和*)。所以可以轻松的传个list/tuple/dict给format函数。非常灵活。

5 格式限定符

它有着丰富的的“格式限定符”(语法是{}中带:号),比如: 填充与对齐 填充常跟对齐一起使用 ^、<、>分别是居中、左对齐、右对齐,后面带宽度 :号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充 比如

In [15]: '{:>8}'.format('189')
Out[15]: '   189'
In [16]: '{:0>8}'.format('189')
Out[16]: '00000189'
In [17]: '{:a>8}'.format('189')
Out[17]: 'aaaaa189'

6 精度与类型f

精度常跟类型f一起使用

In [44]: '{:.2f}'.format(321.33345)
Out[44]: '321.33'

其中.2表示长度为2的精度,f表示float类型。

7 其他类型

主要就是进制了,b、d、o、x分别是二进制、十进制、八进制、十六进制。

In [54]: '{:b}'.format(17)
Out[54]: '10001'
In [55]: '{:d}'.format(17)
Out[55]: '17'
In [56]: '{:o}'.format(17)
Out[56]: '21'
In [57]: '{:x}'.format(17)
Out[57]: '11'

8 用,号还能用来做金额的千位分隔符。

In [47]: '{:,}'.format(1234567890)
Out[47]: '1,234,567,890'

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏C语言及其他语言

C语言中的基本输入输出

1.字符输出函数putchar putchar函数是字符输出函数,其功能是在终端(显示器)输出单个字符。其一般调用形式为: putchar(字符变量); ...

2789
来自专栏转载gongluck的CSDN博客

sscanf的高级用法 正则表达式

sscanf() - 从一个字符串中读进与指定格式相符的数据。 函数原型: int sscanf( const char *, const char *, ....

3184
来自专栏决胜机器学习

PHP数据结构(三)——运用栈实现括号匹配

PHP数据结构(三)——运用栈实现括号匹配 (原创内容,转载请注明来源,谢谢) 栈在数据结构上是一种特殊的线性表,其限制是仅允许在表的一端进行插入和删除运算,...

3776
来自专栏架构说

Leetcode 200 Number of Islands 岛的个数

1. 遍历每一个结点,如果某结点是陆地且未访问过,岛数目加1,修改未访问标志位,然后把该点放入队列中,以备扩展岛屿使用,进入2 2. 队列不为空时,取出点,然...

743
来自专栏HappenLee的技术杂谈

C++雾中风景番外篇:理解C++的复杂声明与声明解析

在编写C/C++代码时偶尔能看到如下的复杂声明:float(*(*e[10])(int*))[5]。我想你的第一反应一定是:MMP。虽然我们在实际工作之中是很少...

672
来自专栏灯塔大数据

技术 | Python从零开始系列连载(四)

导读 上一期学习了Python的基本运算和表达式的一部分,相信大家都已经熟悉啦,我们这一期就来学习Python的基本运算和表达式剩下的部分吧! Python的基...

4016
来自专栏机器学习从入门到成神

牛客网刷题汇总(一)附解析

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_35512245/articl...

1132
来自专栏海天一树

小朋友学C语言(3):整数、浮点数、字符

C语言的数据类型有整型、浮点型(就是小数)、字符、字符串、数组、结构体等。刚开始学的时候,不要一下子学太多。先学最基本的整型、浮点型和字符。 对于学习程序来说,...

2706
来自专栏python3

python 递归与高阶函数

在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。

874
来自专栏Golang语言社区

Golang语言”奇怪用法“有哪些?

1,go的变量声明顺序是:”先写变量名,再写类型名“,此与C/C++的语法孰优孰劣,可见下文解释: http://blog.golang.org/gos-dec...

31210

扫码关注云+社区