Python2和Python3中print的用法示例总结
前言
最近在学习python,对于python的print一直很恼火,老是不按照预期输出。在python2中print是一种输出语句,和if语句,while语句一样的东西,在python3中为了填补python2的各种坑,将print变为函数,因此导致python3中print的一些使用和python2很不一样。下面就来给大家详细的总结了关于Python2和Python3中print的用法,话不多说了,来一起看看详细的介绍吧。
一、Python2中的print用法
在Python2中print是一种输出语句
strHello='HelloPython' printstrHello #HelloPython
1.格式化输出整数
strHello="thelengthof(%s)is%d"%('HelloWordld',len('HelloWorld')) printstrHello #thelengthof(HelloWordld)is11
2.格式化输出16进制整数
#格式描述 #%%百分号标记 #%c字符及其ASCII码 #%s字符串 #%d有符号整数(十进制) #%u无符号整数(十进制) #%o无符号整数(八进制) #%x无符号整数(十六进制) #%X无符号整数(十六进制大写字符) #%e浮点数字(科学计数法) #%E浮点数字(科学计数法,用E代替e) #%f浮点数字(用小数点符号) #%g浮点数字(根据值的大小采用%e或%f) #%G浮点数字(类似于%g) #%p指针(用十六进制打印值的内存地址) #%n存储输出字符的数量放进参数列表的下一个变量中
nHex=0x20 print'nHex=%x,nDec=%d,nOct=%o'%(nHex,nHex,nHex) #nHex=20,nDec=32,nOct=40
输出二进制的话,可以使用python函数bin()
#Python2.7.10(default,Feb72017,00:08:15) #[GCC4.2.1CompatibleAppleLLVM8.0.0(clang-800.0.34)]ondarwin #Type"help","copyright","credits"or"license"formoreinformation. #>>>bin(789) #'0b1100010101' #>>>
3.格式化输出浮点数(float)
- %字符:标记转换说明符的开始
- 最小字段宽度:转换后的字符串至少应该具有该值指定的宽度。如果是*,则宽度会从值元组中读出
- 转换标志:-表示左对齐;+表示在转换值之前要加上正负号;''(空白字符)表示正数之前保留空格;0表示转换值若位数不够则用0填充
- 点(.)后跟精度值:如果转换的是实数,精度值就表示出现在小数点后的位数。如果转换的是字符串,那么该数字就表示最大字段宽度。如果是*,那么精度将从元组中读出
importmath #default print'PI=%f'%math.pi #PI=3.141593 #width=10,precise=3,align=left print'PI=%10.3fxxx'%math.pi #PI=3.142xxx #width=10,precise=3,align=right print'PI=%-10.3fxxx'%math.pi #PI=3.142xxx #前面填充字符串 print'PI=%06d'%int(math.pi) #PI=000003
4.格式化输出字符串(string)
#precise=3 print'%.3s'%('jcodeer') #jco #precise=4 print'%.*s'%(4,'jcodeer') #jcod #width=10,precise=3 print'xx%10.3s'%('jcodeer') #xxjco
5.输出列表(list)
l=[1,2,3,'jcodeer'] printl #[1,2,3,'jcodeer']
6.输出字典(dictionary)
d={1:'A',2:'B',3:'C',4:'D'} printd #{1:'A',2:'B',3:'C',4:'D'}
7.pythonprint自动换行
#print会在行末加上回车,如果不需要,只需在print语句结尾添加一个逗号',' foriinrange(0,5): printi, #01234
或者直接使用下面的函数进行输出:
importsys sys.stdout.write("输出的字符串")
8.万能的%r
它可以将后面给的参数原样打印出来,带有类型信息
formatter='%r%r%r%r' printformatter%(1,2,3,4) printformatter%('one','two','three','four') printformatter%(True,False,False,True) printformatter%(formatter,formatter,formatter,formatter) printformatter%( "Ihadthisthing.", "Thatyoucouldtypeupright.", "Butitdidn'tsing.", "SoIsaidgoodnight." ) #1234 #'one''two''three''four' #TrueFalseFalseTrue #'%r%r%r%r''%r%r%r%r''%r%r%r%r''%r%r%r%r' #'Ihadthisthing.''Thatyoucouldtypeupright.'"Butitdidn'tsing."'SoIsaidgoodnight.'
9.矩阵输出
importnumpyasnp a=np.array([[1,2],[3,4]]) b=np.array([[5,6],[7,8]]) printa #[[12] #[34]] printb #[[56] #[78]] printa,b #[[12] #[34]][[56] #[78]]
二、Python3中的print用法
在Python3中print是一个函数,通过格式化函数format()来控制输出格式
1.通过位置标号
#{0}表示第一个元素,{1}表示第二个元素,{2}表示第三个元素,以此类推。。。 a='Ace' b='hello' print("{1},mynameis{0}".format(a,b)) #hello,mynameisAce
2.通过关键词参数
name="Ace" age=26 print("{myname}'sageis{myage}".format(myname=name,myage=age)) #Ace'sageis26
3.通过属性和下标
person=["Ace",26] print("{0[0]}'sageis{0[1]}".format(person)) #Ace'sageis26 print("{people[0]}'sageis{people[1]}".format(people=person)) #Ace'sageis26
字典字符串不需要加引号
person={'Ace':26} print("{myname}'sageis{people[Ace]}".format(myname=name,people=person)) #Ace'sageis26
4.格式化限定符
{0:0.3f}{1:3d}在序号后面加上格式符就可以了,不用加%
5.填充与对齐
^,<,>分别代表居住,左对齐,右对齐,后面带宽度
a=123.456789 haha='haha!!!' print("{0:0.3f},*{1:<14}*".format(a,haha)) print("{0:0.3f},*{1:>14}*".format(a,haha)) print("{0:0.3f},*{1:^14}*".format(a,haha)) print("{0:0.3f},*{1:}*".format(a,haha)) #123.457,*haha!!!* #123.457,*haha!!!* #123.457,*haha!!!* #123.457,*haha!!!*
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对毛票票的支持。