问题阐述:
通过参加近3次笔试(阿里、字节跳动、网易)发现
机考的编译界面不同于leetcode(已经给出部分代码,不需要读取,直接用即可)
机考类似于华为机考,需要从零开始,包括读取输入
![](https://img.haomeiwen.com/i9561213/9c9491702c2771fe.png)
Bug:读取错误
在读取的时候,本地可以运行的代码却总是会报这个错误
EOFerror:EOF when reading a line
![](https://img.haomeiwen.com/i9561213/1c532aec0fe50895.png)
![](https://img.haomeiwen.com/i9561213/95d1a4c18f4331e8.png)
解决这个问题的最好方式是采用try和except语法
list1 = []
while True:
try:
number = input()
if(number == ""):
break
list1.append(number)
except EOFError:
break
for i in list1:
print(int(i,16))
![](https://img.haomeiwen.com/i9561213/608169010e829488.png)
读取多行数据可以采用上面所示代码的结构,while大循环里套上try
原 因 溯 源
产生这个bug的原因是因为机考测试不是人为手动输入测试案例,而是使用管道将输入传进测试的python脚本里,如下
![](https://img.haomeiwen.com/i9561213/fa828aa88b5749eb.png)
![](https://img.haomeiwen.com/i9561213/4eebe57d2754f85f.png)
由于EOF无法通过管道被传输,所以会报错,针对于此。牛客特别提供了一套输入输出的测试练习题
链接如下
https://ac.nowcoder.com/acm/contest/320#question
解析如下
https://blog.csdn.net/qq_41023125/article/details/105748780
网友评论