print()

基本用法

  • 自动换行
  • print("hello world!")
  • print(a,b,"hello world!")
  • print("www", "snh48", "com", sep=".")
  • print(*objects, sep=' ', end='\n', file=sys.stdout)
    • objects —表示输出的对象。输出多个对象时,需要用 , (逗号)分隔。
    • sep — 用来间隔多个对象。
    • end — 用来设定以什么结尾。默认值是换行符 \n,我们可以换成其他字符。
    • file — 要写入的文件对象。

数据的格式化输出

  • print('The length of %s is %d' %(s,x))
  • %字符:标记转换说明符的开始
  1. PI = 3.141592653
  2. print('%10.3f'%PI) #字段宽10,精度3
  3. # 3.142
  4. #精度为3,所以只显示142,指定宽度为10,所以在左边需要补充5个空格,以达到10位的宽度
  5. PI=3.1415926
  6. print("PI=%.*f"%(3,PI))
  7. #用*从后面的元组中读取字段宽度或精度,可以读取出来精度是3位
  8. #PI=3.142
  9. #没有指定宽度,所以不需要缩进
  10. print("PI=%*.3f"%(10,PI)) #精度为3,总长为10.
  11. # PI= 3.142

转换标志

  • 转换标志:-表示左对齐;+表示在数值前要加上正负号;” “(空白字符)表示正数之前保留空格();0表示转换值若位数不够则用0填充。
  1. PI=3.1415926
  2. print('%-10.3f' %PI) #左对齐,还是10个字符,但空格显示在右边。
  3. #3.142
  4. PI=3.1415926
  5. print('%+f' % PI) #显示正负号 #+3.141593
  6. # 类型f的默认精度为6位小数。
  7. PI=3.1415926
  8. print('%010.3f'%PI) #字段宽度为10,精度为3,不足处用0填充空白
  9. #000003.142 0表示转换值若位数不够则用0填充

格式字符归纳

格式字符 说明 格式字符 说明
%s 字符串采用str()的显示 %x 十六进制整数
%r 字符串(repr())的显示 %e 指数(基底写e)
%c 单个字符 %E 指数(基底写E)
%b 二进制整数 %f,%F 浮点数
%d 十进制整数 %g 指数(e)或浮点数(根据显示长度)
%i 十进制整数 %G 指数(E)或浮点数(根据显示长度)
%o 八进制整数 %% 字符%

换行与防止换行

在python中,输出函数总是默认换行,比如说:

  1. for x in range(0,5):
  2. print(x)
  3. '''
  4. 0
  5. 1
  6. 2
  7. 3
  8. 4
  9. '''
  • 而显然,这种输出太占“空间”,我们可以进行如下改造:
  • 参考文本第一部分对end参数的描述:end — 用来设定以什么结尾。默认值是换行符 \n,我们可以换成其他字符。
  1. for x in range(0, 5):
  2. print(x, end=' ')
  3. #0 1 2 3 4
  4. for x in range(0, 5):
  5. print(x, end=',')
  6. #0,1,2,3,4,
  • 但如果,我们同时运行上面两段代码,结果会如下所示,可知:我们需要在两次输出间,实现换行。
  1. for x in range(0, 5):
  2. print(x, end=' ')
  3. for x in range(0, 5):
  4. print(x, end=',')
  5. #0 1 2 3 4 0,1,2,3,4,
  • 我们比较以下几种方式
  • 方式一:
  1. for x in range(0, 5):
  2. print(x, end=' ')
  3. print('\n')
  4. for x in range(0, 5):
  5. print(x, end=',')
  6. '''
  7. 0 1 2 3 4
  8. 0,1,2,3,4,
  9. '''

之所以出现上面这种情况,是因为print()本身就是默认换行的,再加上换行符,相当于换行两次。

  • 方式二:
  1. for x in range(0, 5):
  2. print(x, end=' ')
  3. print() #本身自带换行,完美输出
  4. for x in range(0, 5):
  5. print(x, end=',')
  6. '''
  7. 0 1 2 3 4
  8. 0,1,2,3,4,
  9. '''