【问题标题】:Spotify Tech Puzzle - stdin in PythonSpotify 技术拼图 - Python 中的标准输入
【发布时间】:2012-02-05 18:15:15
【问题描述】:

我正在尝试解决 Spotify 技术难题中的双边问题。 http://www.spotify.com/us/jobs/tech/bilateral-projects/ 我的计算机上有一些东西正在运行,它从文件 input.txt 读取输入,然后输出到 ouput.txt。我的问题是,当我将代码提交到必须从标准输入读取的地方时,我无法弄清楚如何使我的代码工作。我看过其他几个帖子,但我没有看到任何对我有意义的东西。我看到有些人只使用 raw_input - 但这会产生用户提示?不知道该怎么办。这是我的代码的一部分,它应该读取输入并写入输出。关于这可能需要如何改变的任何建议?另外,一旦将代码更改为从标准输入读取,我将如何测试代码?如何将测试数据放入标准输入?我从 spotify 返回的错误是运行时错误 - NameError。

import sys

# Read input
Input = []
for line in sys.stdin.readlines():
    if len(line) <9:
        teamCount = int(line)
    if len(line) > 8:
        subList = []
        a = line[0:4]
        b = line[5:9]
        subList.append(a)
        subList.append(b)
        Input.append(subList)

##### algorithm here

#write output
print listLength
for empWin in win:
    print empWin

【问题讨论】:

    标签: windows-xp stdin python-2.7 spotify


    【解决方案1】:

    其实你做得很好。

    for line in sys.stdin.readlines():
    

    将从标准输入读取行。但是,它可以缩短为:

    for line in sys.stdin:
    

    我不使用 Windows,但要从命令行测试您的解决方案,您应该像这样运行它:

    python bilateral.py < input.txt > output.txt
    

    如果我这样运行您的代码,我会看到错误消息

    Traceback (most recent call last):
      File "bilateral.py", line 20, in <module>
        print listLength
    NameError: name 'listLength' is not defined
    

    这是 Spotify 拼图检查器发现的错误(因为我猜你没有发送)。您可能只是在某个地方拼错了一个变量。

    【讨论】:

    • 好的,感谢您的帮助。我很难弄清楚该怎么做!我不想发布我的完整解决方案,所以我省略了定义变量的中间部分 - 哎呀
    猜你喜欢
    • 2013-03-03
    • 2017-08-29
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-10
    • 1970-01-01
    相关资源
    最近更新 更多