我正在構建一個問題spoj.com。用戶必須提交一個腳本,該腳本將預先附加一個我的代碼,以便爲他提供他必須使用的功能。這種類型的模板:隱藏用戶運行腳本的stdin數據?
def youmustusethis(maptask, reducetask):
data = sys.stdin.readlines()
return reduce(reducetask, map(maptask, data))
##### USER WRITES CODE BELOW #####
....
有趣的是:用戶往往是黑客輸出比解決問題的方式。我預計人們會忽略這些功能,直接讀取stdin,並完全忽略我提供的「框架」。
有沒有一種方法可以強制使用我的框架來處理腳本,從腳本的下半部分隱藏stdin數據?
沒有很好的方法來阻止對'stdin'的訪問,但是你總是可以將'sys.stdin'設置爲別的。 –
我不確定我是否理解 - 如果用戶想要解析stdin,爲什麼不讓他們? – mgilson
SPOJ是一個解決問題的網站。我需要驗證用戶是否學會了如何使用某個框架(MapReduce)。當你寫考試時,你會得到你應用的方法的評分,而不是「答案是5」。我需要強制執行。 – ArekBulski