You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Python代码实现仅从STDIN读取两个数字并求和?

问题:读取两个数字后立即输出总和的代码修正

我希望通过Python的stdin函数读取两个数字并输出它们的总和,编写了如下代码:

import sys

num1 = None
num2 = None

print('Please Enter Two Numbers to Find their Sum or Enter q to quit')
for line in sys.stdin:
    if('q'==line.strip()):
        break
    else:
        num = int(line.strip())
        if(num1 == None):
            num1 = num
        elif(num2 == None):
            num2 = num
        else:
            break

total = num1 + num2
print(total)

期望实现输入两个数字后立即输出总和,示例如下:

Please Enter Two Numbers to Find their Sum or Enter q to quit    
12
11
23

但运行当前代码时,会在输入第三个数字后才输出前两个数字的总和(示例:输入12、11、13后输出23),请问需要修改代码的哪部分才能实现仅读取两个数字就输出总和?


修正方案

当前代码的问题在于,只有读取到第三个输入或者输入q时才会跳出循环,之后才计算总和。要实现输入第二个数字后立即输出结果,只需在给num2赋值后直接终止循环即可。

修改后的代码:

import sys

num1 = None
num2 = None

print('Please Enter Two Numbers to Find their Sum or Enter q to quit')
for line in sys.stdin:
    if('q'==line.strip()):
        break
    else:
        num = int(line.strip())
        if(num1 == None):
            num1 = num
        elif(num2 == None):
            num2 = num
            break  # 读取第二个数字后立即跳出循环
        else:
            break

total = num1 + num2
print(total)

添加这条break语句后,当第二个数字被成功读取并赋值给num2,循环会立刻终止,程序随即计算并输出两个数字的总和,完全符合预期效果。

内容的提问来源于stack exchange,提问作者Mahmoud Abdel-Rahman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 11:47:06