这个为什么报错(不知道输入的是啥)

下图供编程参考,代码中不要出现中文字符

鍥剧墖.png

def circle_area(r):
    return (r*r*3.14159265358979323)
r =eval(input())
area  =  circle_area(r)
print("circle's  area  is",area)

Traceback (most recent call last):
  File "/249444104/p249444104", line 4, in <module>
    r =eval(input())
EOFError: EOF when reading a line

我这边运行没有问题

EOFError:EOF when reading a line,遇到这个问题一般是sublime不支持input函数,你可以看看https://blog.csdn.net/zhangwenhaojf40it/article/details/79989647能不能解决你的问题

代码不报错呢, 输入任意数字就可以

问题在于r = eval(input()) 这一句,题主可能没有输入而是直接敲击回车,此时eval()就会报错。建议题主使用float(),写成下面的样子:

r = float(input('请输入半径:'))

考虑到容错的话,最好这样写:

while True:
    try:
        r = float(input('请输入半径:'))
        break
    except:
        print('输入错误,请重新输入!')