前言
最近在学习python,对于python的print一直很恼火,老是不按照预期输出。在python2中print是一种输出语句,和if语句,while语句一样的东西,在python3中为了填补python2的各种坑,将print变为函数,因此导致python3中print的一些使用和python2很不一样。下面就来给大家详细的总结了关于Python2和Python3中print的用法,话不多说了,来一起看看详细的介绍吧。
一、Python2中的print用法
在Python2 中 print 是一种输出语句
strHello = 'Hello Python' print strHello # Hello Python
1.格式化输出整数
strHello = "the length of (%s) is %d" %('Hello Wordld', len('Hello World')) print strHello # the length of (Hello Wordld) is 11
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()
# Python 2.7.10 (default, Feb 7 2017, 00:08:15) # [GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.34)] on darwin # Type "help", "copyright", "credits" or "license" for more information. # > bin(789) # '0b1100010101' # >
3.格式化输出浮点数(float)
- %字符:标记转换说明符的开始
- 最小字段宽度:转换后的字符串至少应该具有该值指定的宽度。如果是*,则宽度会从值元组中读出
- 转换标志:-表示左对齐;+表示在转换值之前要加上正负号;''(空白字符)表示正数之前保留空格;0表示转换值若位数不够则用0填充
- 点(.)后跟精度值:如果转换的是实数,精度值就表示出现在小数点后的位数。如果转换的是字符串,那么该数字就表示最大字段宽度。如果是*,那么精度将从元组中读出
import math #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.142 xxx # 前面填充字符串 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') # xx jco
5.输出列表(list)
l = [1, 2, 3, 'jcodeer'] print l # [1, 2, 3, 'jcodeer']
6.输出字典(dictionary)
d = {1: 'A',2: 'B',3: 'C',4: 'D'} print d # {1: 'A', 2: 'B', 3: 'C', 4: 'D'}
7.python print 自动换行
# print会在行末加上回车,如果不需要,只需在print语句结尾添加一个逗号',' for i in range(0,5): print i, # 0 1 2 3 4
或者直接使用下面的函数进行输出:
import sys sys.stdout.write("输出的字符串")
8.万能的 %r
它可以将后面给的参数原样打印出来,带有类型信息
formatter = '%r %r %r %r' print formatter % (1, 2, 3, 4) print formatter % ('one', 'two', 'three', 'four') print formatter % (True, False, False, True) print formatter % (formatter, formatter, formatter, formatter) print formatter % ( "I had this thing.", "That you could type up right.", "But it didn't sing.", "So I said goodnight." ) # 1 2 3 4 # 'one' 'two' 'three' 'four' # True False False True # '%r %r %r %r' '%r %r %r %r' '%r %r %r %r' '%r %r %r %r' # 'I had this thing.' 'That you could type up right.' "But it didn't sing." 'So I said goodnight.'
9.矩阵输出
import numpy as np a = np.array([[1,2],[3,4]]) b = np.array([[5,6],[7,8]]) print a # [[1 2] # [3 4]] print b # [[5 6] # [7 8]] print a, b # [[1 2] # [3 4]] [[5 6] # [7 8]]
二、Python3中的print用法
在Python3 中print 是一个函数,通过格式化函数format()来控制输出格式
1. 通过位置标号
# {0}表示第一个元素, {1}表示第二个元素, {2}表示第三个元素,以此类推。。。 a = 'Ace' b = 'hello' print("{1}, my name is {0}".format(a, b)) # hello, my name is Ace
2. 通过关键词参数
name = "Ace" age = 26 print("{myname}'s age is {myage}".format(myname=name, myage=age)) # Ace's age is 26
3. 通过属性和下标
person = ["Ace", 26] print("{0[0]}'s age is {0[1]}".format(person)) # Ace's age is 26 print("{people[0]}'s age is {people[1]}".format(people=person)) # Ace's age is 26
字典字符串不需要加引号
person = {'Ace': 26} print("{myname}'s age is {people[Ace]}".format(myname=name,people=person)) # Ace's age is 26
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!!!*
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新日志
- 中国武警男声合唱团《辉煌之声1天路》[DTS-WAV分轨]
- 紫薇《旧曲新韵》[320K/MP3][175.29MB]
- 紫薇《旧曲新韵》[FLAC/分轨][550.18MB]
- 周深《反深代词》[先听版][320K/MP3][72.71MB]
- 李佳薇.2024-会发光的【黑籁音乐】【FLAC分轨】
- 后弦.2012-很有爱【天浩盛世】【WAV+CUE】
- 林俊吉.2012-将你惜命命【美华】【WAV+CUE】
- 晓雅《分享》DTS-WAV
- 黑鸭子2008-飞歌[首版][WAV+CUE]
- 黄乙玲1989-水泼落地难收回[日本天龙版][WAV+CUE]
- 周深《反深代词》[先听版][FLAC/分轨][310.97MB]
- 姜育恒1984《什么时候·串起又散落》台湾复刻版[WAV+CUE][1G]
- 那英《如今》引进版[WAV+CUE][1G]
- 蔡幸娟.1991-真的让我爱你吗【飞碟】【WAV+CUE】
- 群星.2024-好团圆电视剧原声带【TME】【FLAC分轨】