栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

EOFError:读取行时出现EOF

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

EOFError:读取行时出现EOF

width, height = map(int, input().split())def rectanglePerimeter(width, height):   return ((width + height)*2)print(rectanglePerimeter(width, height))

像这样运行它会产生:

% echo "1 2" | test.py6

我怀疑IDLE只是将单个字符串传递给您的脚本。首先

input()
是对整个字符串进行细化。请注意,如果在调用以下命令后放入一些打印语句,会发生什么情况
input()

width = input()print(width)height = input()print(height)

运行

echo "1 2" | test.py
产品

1 2Traceback (most recent call last):  File "/home/unutbu/pybin/test.py", line 5, in <module>    height = input()EOFError: EOF when reading a line

请注意,第一个print语句将打印整个字符串

'1 2'
。第二个调用
input()
引发
EOFError
(文件结束错误)。

因此,一个简单的管道(例如我使用的管道)仅允许您传递一个字符串。因此,您只能拨打

input()
一次电话。然后,您必须处理此字符串,将其在空白处分割,然后将字符串片段自己转换为int。那是什么

width, height = map(int, input().split())

做。

注意,还有其他方法可以将输入传递给程序。如果您

test.py
在终端中运行,那么您可以分别键入
1
2
没有问题。或者,您可能已经编写了带有pexpect的程序来模拟终端,传递
1
并以
2
编程方式进行编程。或者,您可以使用argparse在命令行上传递参数,从而允许您使用

test.py 1 2


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/617694.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号