如何修改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
相关产品推荐
相关产品推荐

