首页 > 解决方案 > 如果是奇数则返回数字的平方,如果是偶数则返回 (number-1) 平方

问题描述

def odd_square(number):
    if number == 0:
        return 0
    elif number % 2 == 1:
        return number*number
    else:
        return (number - 1)*(number - 1)

square = odd_square(int(input("Enter number to square: ")))
print("square is: ",square)

输出应该类似于输入为 7 的函数应返回 49,输入为 6 的函数应返回 25。但存在 EOF 行错误。Python 版本 3.8.0

错误:

输入数字平方:

错误

回溯(最近一次通话最后):

文件“ tester .python3”,第 9 行,在

square = odd_square(int(input("输入平方数:")))

EOFError:读取一行时出现EOF

标签: python

解决方案


如果您使用的是 Python 2.7,input将尝试在您的字符串输入中执行代码。因此,如果您不输入任何内容,您将收到并EOF出错。

为了防止用户随意输入的代码被执行,推荐使用raw_inputPython 2.7。(或者升级到 Python 3+ 并使用input,因为对 Python 2.7 的支持将在几周内消失)。

即使进行了此更改,如果您不输入任何输入,您仍然会从代码中收到错误,这不会是EOF错误。

感谢 Chris Doyle 在评论中的讨论


推荐阅读