在第13行,在<模块>中a=int(输入()) EOF错误:读取一行.时文件错误的结束
第13行是语句elif == 3:的一个=int(int())。
编写一个执行简单计算器任务的程序。程序应该首先以一个整数作为输入,然后根据该整数执行任务,如下所示。
如果输入为1,则从用户处取出2个整数,并打印它们的和;如果输入为2,则从用户获取2个整数,并打印它们的差(第一个数字-第二个数字);如果输入为3,则从用户处取出2个整数,并打印产品;如果输入为4个,则从用户处获取2个整数;如果输入为5时,则打印获得的商数(除以第一个数字)。如果输入为5时,则为H 113
。从用户处取出两个整数,并打印其馀数(第一个数字mod第二个数字)。如果输入为6,则
。
n = int(input())
while n != 6:
if n == 1:
a = int(input())
b = int(input())
print(a + b)
elif n == 2:
a = int(input())
b = int(input())
print(a - b)
elif n == 3:
a = int(input())
b = int(input())
print(a * b)
elif n == 4:
a = int(input())
b = int(input())
print(a // b)
elif n == 5:
a = int(input())
b = int(input())
print(a % b)
else:
print("Invalid Operation")
发布于 2020-08-30 06:28:19
当您已经到达输入的末尾时,如果您调用了EOFError,就会发生input()
。问题是,您的循环条件总是True
(如果开始时不键入6),因为n
被分配到循环之外的某个值,并且从未更改。因此,它将始终调用input()
,并且在某个时候,如果您已经到达输入的末尾(例如,您按ctrl (Linux)或ctrl (Windows),或者它到达重定向到标准输入的输入文件的末尾),则可能会失败。
你可能是说:
while True
n = int(input())
if n == 6:
break
# carry on with rest of code ...
虽然如果您使用的是PythonWalrus3.8,您可以使用"walrus操作符“,以避免需要一个必须从>=退出的while True
循环:
while (n := int(input()) != 6:
# carry on with rest of code ...
https://stackoverflow.com/questions/63654528
复制相似问题