栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

py-scripts初体验

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

py-scripts初体验

语雀原文地址: py-scripts初体验

参考资料

PyScript: Python in the Browser 官网

pyscript 独立官网

py-scripts官方github仓库

简介

py-scripts是anaconda团队开发的浏览器中的python运行环境, 基于Pyodide(一个将CPython编译成WebAssembly的项目).

如何使用 hello-wrold
  • 引入依赖:


  • 标签中写代码

  
    
    
  
    print('Hello, World!')  

计算圆周率

  
    
    
  
  
      
print("计算圆周率:")
def wallis(n):
    pi = 2
    for i in range(1,n):
        pi *= 4 * i ** 2 / (4 * i ** 2 - 1)
    return pi

pi = wallis(10000000)
s = f"圆周率接近: {pi:.10f}"
print(s)
      
  

结合d3.js画图

  
    d3: JavaScript & PyScript visualizations side-by-side
    

    
    


    

    
    
      
        Based on Learn D3: Shapes tutorial.
      
      
JavaScript version
PyScript version
from pyodide import create_proxy, to_js import d3 fruits = [ dict(name="", count=21), dict(name="", count=13), dict(name="", count=8), dict(name="", count=5), dict(name="", count=3), dict(name="", count=2), dict(name="", count=1), dict(name="", count=1), ] fn = create_proxy(lambda d, *_: d["count"]) data = d3.pie().value(fn)(to_js(fruits)) arc = (d3.arc() .innerRadius(210) .outerRadius(310) .padRadius(300) .padAngle(2 / 300) .cornerRadius(8)) py = d3.select("#py") py.select(".loading").remove() svg = (py .append("svg") .attr("viewBox", "-320 -320 640 640") .attr("width", "400") .attr("height", "400")) for d in data: d_py = d.to_py() (svg.append("path") .style("fill", "steelblue") .attr("d", arc(d))) text = (svg.append("text") .style("fill", "white") .attr("transform", f"translate({arc.centroid(d).join(',')})") .attr("text-anchor", "middle")) (text.append("tspan") .style("font-size", "24") .attr("x", "0") .text(d_py["data"]["name"])) (text.append("tspan") .style("font-size", "18") .attr("x", "0") .attr("dy", "1.3em") .text(d_py["value"]))

结论
  • 非常有趣
  • 非常早期, 官网连hello-world教程都没有
  • wasm数据过大, 加载了几分钟还没加载出来, 毕竟是要把整个编译器加载到浏览器中, 而且这个wasm没有放到国内的cdn上.(所以近期的玩法, 最大的可能是将这些文件放到本地…)
  • 未来给pythoner带来更多可能, 结合jupter-notebook可以带来很多炫酷的玩法.
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/863878.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号