问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

谁能解释一下print与sys.stdout.write的区别

发布网友 发布时间:2022-04-23 15:06

我来回答

1个回答

热心网友 时间:2023-10-05 09:01

下面应该可以解你的惑了:
print >> sys.stdout的形式就是print的一种默认输出格式,等于print "%VALUE%"
看下面的代码的英文注释,是print的默认帮助信息

# coding=utf-8
import sys, os

list1Display = ['1', '2', '3']
list2Display = ['abc', 'def', 'rfs']
while list2Display != []:
# 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.
# print 可以将值输出到指定的输出流(可以是文件句柄),若不指定,
# 则输出到stdout(标准输出)
# 一般我们使用的时候不加输出定向符“>>”到输出的file对象,本代码中对象是stdout
# 下面的print在stdout对象中每次输出两个值
print >> sys.stdout, list2Display.pop(), list1Display.pop()
os.system( "pause" )

上文中只演示了python2.x中的用法,2.x中的print无法指定end符号为其他值,默认会输出一个"\n",也就是用一次必定换到下一行,到了3.x中print成为了一个真正意义上的函数,后来就可以任意指定end符号的值,你可以输出一次后末尾添加上任意你想要的值,而不是强制换行。

因此在2.x中若想实现输出不换行,只能直接调用stdout对象的write方法了,下面也是一个实例,因为stdout没有end这个符号这一说,输出不会换行,因此如果你想同一样输出多次,在需要输出的字符串对象里面加上"\r",就可以回到行首了。

# coding=utf-8
import sys, os
import time
for i in range( 100 ):
time.sleep( .5 )
sys.stdout.write( "File transfer progress :[%3d] percent complete!\r" % i )
sys.stdout.flush()

体会一下,将上面的"\r"拿掉试试看,是不是不换行而直接输出了?明白了么。很长一段时间内python都会停留在2.x的时代。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
巴西龟最长活多久,家养!!! 养胃的药最好的是什么啊 婴儿积食发烧不愿吃药怎么办 板门穴位在哪个部位 手机设置放偷看的方法? 凝结水回收器生产厂家? 个人账户养老金预测公式:现有5万元,缴费20年,能领多少钱? 临沂比较有名的男装品牌 呼伦贝尔市悦动网络科技有限公司怎么样? 呼伦贝尔中汇实业有限公司怎么样? python管道问题 python标准输出重定向stdout.py的意思 Python sys模块 是做什么的 python的sys是什么文件 Python sys.stdout与sys.stderr 与控制台输出异常有关吗 python3 交互模式中sys.stdout.write为什么会多输出一位数字 python sys.stdout.buffer.write什么意思 求python 中sys.stdout.write 和 print >> sys.stdout的区别,越详 ... 【关于python】请问sys.stdout.flush()是什么意思?一般用在什么地方... 拜托大家帮忙帮起个女孩名字一个名字要带火字旁和水字旁的(三点水也可以) python sys.stdout.write 这个怎么理解 请帮忙起个女孩名字,本人姓张,小女起的名字中得有字带木字旁和水的字旁或三点水旁 python stdout 什么用 龙年女孩取名最好有三点水旁的字,姓张!八字喜「火」 python sys.stdout.write 是怎么意思 ?怎么用 女孩姓张名字带三点水的名 姓张,取个好听唯美的女生名字。带单人旁、木字旁、三点水的最好。 女孩姓张,中间用文子,最后一个字带氵旁,看看叫张文什么好听 求机械课程设计“药丸铝塑封”的尽量详细点的资料,最好带各主要部位的机构简图 求帮忙取名字,张姓女孩,10年10月6日上午八时出生,求带三点水的好名字 sys是python中的标准库吗 Python中sys模组stdin的问题 Python的一个简单问题:for line in sys.stdin: 轻松筹的轻松互助是什么意思?轻松筹有个你交10元的什么大病方面的互助... 轻松筹轻松互助项目具体监管制度或者审核机制有哪些? 轻松筹的轻松互助任何人都可以参加吗? 苹果设置息屏时间 黑色西装上沾了铁锈怎么洗掉? 去铁锈的好方法 这种铁锈怎么去除? 怎样清除铁锈? 如何去除身上铁锈? 小米5用的是什么屏幕 饭店吃饭的碗和勺子里又黑色的锈,怎样去除 为什么微信搜索别人的搜不出来 为什么微信搜索别人的搜不出来 为什么有些搜索不到怎么办? 搜索记录怎么查找 上海豪利时(Oris)手表怎么调日历? oris 怎么读