点击上方   编程学习者社区,选择 创建星标

回复关键字 资源  获取编程资源

Python作为胶水语言,真的是无所不能。这不,最近又出现一个基于Python3,目标是替代JavaScript的前端开发工具—Brython.

好用吗?咱今天来试试用它写一个计算器有多简单:

不过,我们首先要知道它作为Python的客户端Web编程工具,和JS有什么区别呢?

1.特点

1.可轻易地在页面中内嵌Python终端进行测试

2.运行速度接近于CPyhon

3.写法方便,社区强大,可进行敏捷开发

我个人觉得相同的功能,用Python写起来可能会比JS快。

4.和JS一样,你不用安装任何东西就可以开始编写

下面就用Brython做一些简单的实验吧。

2.实验

1.在页面上显示 Hello !:

<html><head><meta charset="utf-8"><script type="text/javascript"src="https://cdn.jsdelivr.net/npm/brython@3.8.9/brython.min.js">script>head><body onload="brython()"><script type="text/python">from browser import documentdocument <= "Hello !"script>body>html>

将这份代码保存为index.html,双击在浏览器中打开,即可看到Hello !字样:

原理:

代码的head中,引入了一个Brython引擎附带的 brython.min.js 模块,用于使用Python控制页面。

而在

可以看到,需要在document中显示文本,直接输入:

document <= "你所需要显示的文本"

即可,后续你将会看到用Brython使用标准化的DOM语法和页面交互的例子。

2.用HTML标签来做文本格式化:

如加粗文本:

from browser import document, htmldocument <= html.B("Hello !")

部分加粗、部分不加粗:

from browser import document, htmldocument <= html.B("Hello, ") + "world !"

i 标签:

document <= html.UL(html.LI(i) for i in range(5))

超链接:

document <= html.A("Python实用宝典", href="https://pythondict.com")

以上例子如下:

<html><head><meta charset="utf-8"><script type="text/javascript"src="https://cdn.jsdelivr.net/npm/brython@3.8.9/brython.min.js">script>head><body onload="brython()"><script type="text/python">from browser import document, htmldocument <= html.B("Hello !")document <= html.UL(html.LI(i) for i in range(5))document <= html.A("Python实用宝典", href="https://pythondict.com")script>body>html>

效果:

3.写一个简单的计算器

先写好简单的图形架构,用th和tr标签即可:

from browser import document, htmlcalc = html.TABLE()calc <= html.TR(html.TH(html.DIV("0", id="result"), colspan=3) +                html.TH("C", id="clear"))lines = ["789/",        "456*",        "123-",        "0.=+"]calc <= (html.TR(html.TD(x) for x in line) for line in lines)document <= calc

图片版代码:

然后加上一些css就可以把这个简单的图形架构变漂亮了:

*{font-family: sans-serif;font-weight: normal;font-size: 1.1em;}td{background-color: #ccc;padding: 10px 30px 10px 30px;border-radius: 0.2em;text-align: center;cursor: default;}#result{border-color: #000;border-width: 1px;border-style: solid;padding: 10px 30px 10px 30px;text-align: right;}

最后只需要做运算符的事件触发器即可,从下面这行代码:

calc <= (html.TR(html.TD(x) for x in line) for line in lines)

可以看出,所有的按钮都被创建为td标签,因此我们要获得所有这些按钮是否被点击,仅需要:

for button in document.select("td"):    button.bind("click", action)

意思是,按钮被点击后便执行 action 操作,action操作定义如下:

def action(event):    """Handles the "click" event on a button of the calculator."""    # The element the user clicked on is the attribute "target" of the    # event object    element = event.target    # The text printed on the button is the element's "text" attribute    value = element.text        if value not in "=C":        # update the result zone        if result.text in ["0", "error"]:            result.text = value        else:            result.text = result.text + value                elif value == "C":        # reset        result.text = "0"            elif value == "=":        # execute the formula in result zone        try:            result.text = eval(result.text)        except:            result.text = "error"

图片版代码:

如果不是=号或C号,则进行字符串拼接

如果是C号,则清空result。

如果是=号,则需要计算出结果,直接对字符串用eval()函数即可完成目的。

以上就是全部核心代码的讲解。


作者:Ckend
来源:Python实用宝典

往期精选

在知乎上学Python-入门篇在知乎上学爬虫大家都用什么背英语单词Python库分享

python 开发工具_一个极具意义的 Python 前端开发工具相关推荐

  1. python自带gui_一个极简易上手的 Python GUI 库

    原标题:一个极简易上手的 Python GUI 库 很多同学学了 Python 之后都想开发带界面的程序,也就是 GUI 应用.一般用的比较多的 GUI 库是 Tkinter(Python 自带)和 ...

  2. angularjs 开发流程_超级棒的30款web前端开发工具汇总,一定要收藏!

    我们与企业内部的Web开发团队进行了很多次交流,研究了很长时间,最后将Debug工具与Web前端开发工具整理汇总在了一起,这些工具对每个Web开发人员都非常有用. 这些工具将使您的工作更加轻松,特别是 ...

  3. 代码查看工具_不好用打我 | 六个前端开发在线工具推荐

    https://blog.csdn.net/EAPxUO/article/details/105648315 EnjoyCSS 老实说,虽然我做过许多前端开发,但我并不擅长 CSS.当我陷入困境时,E ...

  4. android checkbox监听另一个checkbox选中和不选中_一个真正0基础小白学习前端开发的心路历程...

    摘要:真正的0基础小白学习前端开发的心路历程. 距离第一阶段的结束敲响了末尾的声音,抱着初心从开始8号的学习到第一阶段的结束这期间要应付期末考试应付自己的各种事情学习时间总是挤出来的这次学习让我受益匪 ...

  5. 新手学习python零基础_一个零基础新手学习Python应该知道的学习步骤与规划

    很多初学Python的同学都面临着很多的疑问,在之前的文章中我大致的很多问题我已经进行了讲解,无论你是编程零基础.数学,英语不错.还是说没有一个好的学习路线和学习规划等等,在之前的文章中我都给大家进行 ...

  6. 【简便的PyQt5】制作一个极具特色的视频播放器

    [简便的PyQt5]制作一个极具特色的视频播放器 写在前面 效果展示 开源代码 loadInputVideo.py demo.py 写在前面   实现了以下功能 : ❤  PyQt5本地上传视频 ❤  ...

  7. python学生创意作品-Python艺术编程节,极具创意与艺术性的趣味活动

    原标题:Python艺术编程节,极具创意与艺术性的趣味活动 近年来,Python逐渐成为最热门的计算机编程语言之一,"如何开展Python语言的编程教学"已成为计算机基础教育领域的 ...

  8. 组件化开发实战_一篇文章搞懂什么是前端“组件化”开发

    学过网页的朋友都知道,制作一个网页离不开HTML.CSS和JavaScript技术.对于初学者来来说,掌握这3门技术就已经很不容易了,为什么前端为什么又要搞出来一个"组件化"开发的 ...

  9. Python灰帽子_黑客与逆向工程师的Python编程之道

    收藏自用 链接:Python灰帽子_黑客与逆向工程师的Python编程之道

最新文章

  1. xray 被动_长亭xray:一款自动化Web漏洞扫描神器(免费社区版)
  2. 基本数据类型和字符串类型的转换
  3. 密码学基础知识(三)古典密码
  4. Apollo分布式配置中心在本地的安装教程
  5. jzoj1164-求和【欧拉函数,数论】(筛欧拉函数模板)
  6. QString与中文问题
  7. 334. Increasing Triplet Subsequence
  8. 要想下班早,微服务架构少不了
  9. python调用百度智能云API请求(以自然语言处理——词法分析为例)
  10. 安卓的短信记录导入苹果_安卓换苹果手机如何进行便签数据转移?
  11. effective c++:virtual函数在构造函数和析构函数中的注意事项
  12. 设计模式——单例模式(饿汉式、懒汉式和DCL)
  13. 页面搭建工具总结及扩展架构思考
  14. 数据库,可不只是 CRUD!
  15. js map遍历 修改对象里面的值_前端面试之你必须要懂的原生JS
  16. 【转载】Win10强制删除文件夹
  17. GLM 中的mat4
  18. 小型计算机和Pc,超小型台式电脑:重量相当于两个新iPhone
  19. NYOJ 1016 德莱联盟(计算几何 线段相交判定)
  20. iOS/MAC 数据压缩与解压缩及常用算法 LZMA、ZLIB

热门文章

  1. java 获取mysql路径_如何使用JPQL收集MySQL基本路径?
  2. 变换例题_矩阵的初等变换
  3. 管理计算机中木桶原理,管理学中有个木桶原理美文摘抄
  4. 伺服驱动器cn1引脚定义_英威腾伺服
  5. html js 选择器,h.js - dom元素选择器
  6. oracle约束或语句,oracle、DB2、Informix常用约束语句
  7. php订单日期分类,PHP订单即将到来的日期
  8. python中文件操作的相关函数有哪些_Python常见文件操作的函数示例代码
  9. windowfullscreen后键盘布局顶上去_什么才是第一生产力-2.4G高斯83G双模机械键盘终入囊...
  10. python字符串的删除操作_Python 字符串操作(string替换、删除、截取、复制、连接、比较、...