浏览器中的 Brython 和 python 脚本

Brython and python script in a browser

我尝试使用 Brython。我有一个 Python 脚本 (test.py),我想在浏览器中显示该脚本的结果。

我试过了:

<html>
<head>
<script src="brython.js"></script>
</head>
<body onload="brython()">
<script type="text/python" src="test.py"></script>
</body>
</html>

我的脚本是:

x = int(input("Value: "))
x = pow(x,2)
print("Result: " + str(x))

很遗憾,我无法在浏览器中显示结果。是不是少了什么?

在 Brython 中,print 显示在浏览器控制台中。

如果要将结果写在HTML文件中:

from browser import document

x = int(input("Value: "))
x = pow(x, 2)

document <= "Result: " + str(x)

[edit] 另一种选择是将 sys.stdout 设置为具有 write() 方法的对象,例如模块 browser 中的 document :

from browser import document
import sys

sys.stdout = document
print("Hello", "world !")

为标签添加一个 id='fish' 然后在 python 中覆盖它:

<body id='fish' onload='brython()'>

然后:

d = document['fish']
d.clear()
d <= "Result: %s" % str(x)

注意需要先调用element.clear(),<=等同于Javascript.appendChild(),看文档:https://brython.info/static_doc/en/cookbook/content_in_div.html

如果您想在正确的 XHTML 页面中看到它,请不要替换整个正文,例如只替换一个 div-element/tag。或者用所有需要的 XHTML 标签覆盖整个正文。