首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python :第13行- EOF文件错误,所有语法都是正确的,但仍然显示错误,我不知道为什么。

Python :第13行- EOF文件错误,所有语法都是正确的,但仍然显示错误,我不知道为什么。
EN

Stack Overflow用户
提问于 2020-08-30 06:12:26
回答 1查看 331关注 0票数 0

在第13行,在<模块>中a=int(输入()) EOF错误:读取一行.时文件错误的结束

第13行是语句elif == 3:的一个=int(int())。

编写一个执行简单计算器任务的程序。程序应该首先以一个整数作为输入,然后根据该整数执行任务,如下所示。

如果输入为1,则从用户处取出2个整数,并打印它们的和;如果输入为2,则从用户获取2个整数,并打印它们的差(第一个数字-第二个数字);如果输入为3,则从用户处取出2个整数,并打印产品;如果输入为4个,则从用户处获取2个整数;如果输入为5时,则打印获得的商数(除以第一个数字)。如果输入为5时,则为H 113。从用户处取出两个整数,并打印其馀数(第一个数字mod第二个数字)。如果输入为6,则

  1. 程序退出。
  2. 对于任何其他输入,打印“无效操作”。

代码语言:javascript
运行
复制
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")
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-30 06:28:19

当您已经到达输入的末尾时,如果您调用了EOFError,就会发生input()。问题是,您的循环条件总是True (如果开始时不键入6),因为n被分配到循环之外的某个值,并且从未更改。因此,它将始终调用input(),并且在某个时候,如果您已经到达输入的末尾(例如,您按ctrl (Linux)或ctrl (Windows),或者它到达重定向到标准输入的输入文件的末尾),则可能会失败。

你可能是说:

代码语言:javascript
运行
复制
while True
    n = int(input())
    if n == 6:
        break
    # carry on with rest of code ...

虽然如果您使用的是PythonWalrus3.8,您可以使用"walrus操作符“,以避免需要一个必须从>=退出的while True循环:

代码语言:javascript
运行
复制
while (n := int(input()) != 6:
    # carry on with rest of code ...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63654528

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档