为什么我在使用sys.stdout()打印后得到310,而不是只有3?

时间:2019-05-07 13:01:10

标签: python-3.x

我使用sys.stdout(name)在输出结果的末尾获得了一些随机数,而不是仅获得了必需的结果。我在做什么错了?

代码:

import sys

print('enter first number: ')
no1 = int(sys.stdin.readline())
print('enter second number: ')
no2 = int(sys.stdin.readline())
print('enter third number: ')
no3 = int(sys.stdin.readline())

if (no1 > no2) and (no1 > no3):
    largest = no1
elif (no2 > no1) and (no2 > no3):
    largest = no2
else:
    largest = no3
print('largest: ', largest)     #this gives right result
print(sys.stdout.write('largest: %s' %largest))     #this gives some random int with result at the end
像这样的代码

可以找到3个数字中的最大值,因此如果我们输入first = 1,second = 2,third = 3,我得到print为3,而stdout()为310。 3是正确的答案。

1 个答案:

答案 0 :(得分:0)

要打印预期的结果,下面的代码行就足够了:

sys.stdout.write('largest: %s' %largest)

而下面的代码行还显示了以理想结果长时间写入的字符数

print(sys.stdout.write('largest: %s' %largest))  

感谢@jasonharper!