Skulpt在線模擬運行Python工具


1. Skulpt是一個完全依靠瀏覽器端模擬實現Python運行的工具

2. 不需要預處理、插件或服務器端支持,只需編寫python並重新載入即可。

3. 由於代碼完全是在瀏覽器中運行的,所以不必擔心“服務器崩潰”問題。

github:https://github.com/skulpt/skulpt

 

demo:

<html> 
<head> 

<script src="dist/skulpt.min.js" type="text/javascript"></script> 
<script src="dist/skulpt-stdlib.js" type="text/javascript"></script> 

</head> 

<body> 

<script type="text/javascript"> 

function outf(text) { 
    var mypre = document.getElementById("output"); 
    mypre.innerHTML = mypre.innerHTML + text; 
} 
function builtinRead(x) {
    if (Sk.builtinFiles === undefined || Sk.builtinFiles["files"][x] === undefined)
            throw "File not found: '" + x + "'";
    return Sk.builtinFiles["files"][x];
}
function runit() { 
   var prog = document.getElementById("yourcode").value; 
   var mypre = document.getElementById("output"); 
   mypre.innerHTML = ''; 
   Sk.pre = "output";
    Sk.configure({ output: outf, read: builtinRead, __future__: Sk.python3}); 

   (Sk.TurtleGraphics || (Sk.TurtleGraphics = {})).target = 'mycanvas';
   var myPromise = Sk.misceval.asyncToPromise(function() {
       return Sk.importMainWithBody("<stdin>", false, prog, true);
   });

   myPromise.then(function(mod) {
       console.log('success');
   },
       function(err) {
       console.log(err.toString());
   });
} 
</script> 

<h3>Try This</h3> 
<form> 
<textarea id="yourcode" cols="80" rows="10">
import turtle
print('hello')
t = turtle.Turtle()
t.color('red')
t.forward(75)
</textarea><br />
<button type="button" onclick="runit()">Run</button> 
</form> 
<pre id="output" ></pre> 
<div id="mycanvas"></div>

</body> 

</html> 

  

 

 

但是,有的問題,不能識別eval函數,不知道為什么?


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM