马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 sunrise085 于 2020-9-9 21:53 编辑
学习使人进步,总结使人快速进步!
print() 是我们学习python编程经常用到的输出函数。关于print函数的使用方法,有的人可能认真研究过,有的人可能一知半解。今天我来做一下简单总结。
我们先看一下官方给出的print介绍:
print(...)
print(*objects, 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.
print()有多个参数,参数个数不固定。有四个关键字参数(sep end file flush),这四个关键字参数都有默认值。print作用是将objects的内容输出到file中,objects中的各个参数以sep为间隔,以end为结尾。sep默认值是一个空格;end默认值为’\n’即“回车换行”;file的默认值是sys.stdout,即标准输出终端;flush的作用是是否即时输出,默认值为False,即执行完后输出。
下面看一下例子,助于理解。a=3;b=98;c=0.23
#关键字参数sep的使用效果,默认值是空格,即' '
print(a,b,c)
print(a,b,c,sep='####')
#关键字end的使用效果,默认值是回车换行,即'\n'
print(a)
print(b)
print(c)
print(a,end='***')
print(b,end='+++')
print(c,end='aaa')
运行结果:3 98 0.23
3####98####0.23
3
98
0.23
3***98+++0.23aaa
print还可以写入文件,这时候就需要file参数了f=open("ttt.txt",'w+')
print("abc",file=f,flush=True)
f.close()
这样就把字符串 'abc'写到文件 ttt.txt 中了
flush 参数也是在这里起作用的。
如果是 False,则 close 文件时才真正写入,如果是 True,则立即写入。
使用print()进行输出时,我们经常会用到格式化输出。使用格式化输出有两种方式:一种是使用格式化符号%,一种是使用字符串格式化函数str.format()。这两种方式都需要掌握格式化符号和转义字符。
关于格式化符号和转义字符小甲鱼有详细介绍:字符串格式化符号含义及转义字符含义
关于format函数的使用方法做一下介绍。主要就是用{}和:代替格式化符号%。format可以有多个参数,参数位置也可以不按顺序。例如:"{} {}".format('hello','python')就是'hello python'; '{1}{0}{1}'.format("不","好")就是"好不好"。
此外,format还可以对数字进行格式化。
数字 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | '{:b}'.format(11) '{:d}'.format(11) '{:o}'.format(11) '{:x}'.format(11) '{:#x}'.format(11) '{:#X}'.format(11) | | | ^, <, > 分别是居中、左对齐、右对齐,后面带宽度, : 号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充。
+ 表示在正数前显示 +,负数前显示 -; (空格)表示在正数前加空格
b、d、o、x 分别是二进制、十进制、八进制、十六进制。
若是需要输出大括号{},则需要用大括号{}进行转义,例如:'{{0}} is {0}'.format('第一个参数')就是'{0} is 第一个参数'。
直接看一下例程:a=9
b=95
c=0.234
d='Tony'
e="I'm a student"
print('%06d'%a)
print('%#x'%b)
print('%8.4f'%c)
print('%*.*f'%(8,4,c))
print('{0:a^10d}--{1:>8}-->{1:5.2%}'.format(a,c))
print(d,'said:',e,end='.\n')
print('%s said: %s.'%(d,e),'I\'m %d years old.'%a)
print('{1} said: {0}.'.format(e,d),'I\'m {} years old.'.format(a))
print('{name} said: {words}.'.format(words=e,name=d),'I\'m {} years old.'.format(a))
print('{{name: {}}}'.format(d))
输出结果:000009
0x5f
0.2340
0.2340
aaaa9aaaaa-- 0.234-->23.40%
Tony said: I'm a student.
Tony said: I'm a student. I'm 9 years old.
Tony said: I'm a student. I'm 9 years old.
Tony said: I'm a student. I'm 9 years old.
{name: Tony}
巧妙的使用格式化输出和关键字参数有时候能够使输出非常整齐美观。例如输出乘法口诀列表的时候,使用关键字参数end和宽度控制输出能够使得打印出来的结果特别美观。for i in range(1,10):
for j in range(1,i+1):
print('%d×%d=%-2d'%(j,i,i*j),end='\t')
print()
结果:1×1=1
1×2=2 2×2=4
1×3=3 2×3=6 3×3=9
1×4=4 2×4=8 3×4=12 4×4=16
1×5=5 2×5=10 3×5=15 4×5=20 5×5=25
1×6=6 2×6=12 3×6=18 4×6=24 5×6=30 6×6=36
1×7=7 2×7=14 3×7=21 4×7=28 5×7=35 6×7=42 7×7=49
1×8=8 2×8=16 3×8=24 4×8=32 5×8=40 6×8=48 7×8=56 8×8=64
1×9=9 2×9=18 3×9=27 4×9=36 5×9=45 6×9=54 7×9=63 8×9=72 9×9=81
|