易截截图软件、单文件、免安装、纯绿色、仅160KB
热门标签: c c# c++ asp asp.net linux php jsp java vb Python Ruby mysql sql access Sqlite sqlserver delphi javascript Oracle ajax wap mssql html css flash flex dreamweaver xml
 最新文章 : Python

用栈解析算术表达式[Python版]

代码中采用了三步实现算术表达式的解析:
1. 将算术表达式(字符串)转换成一个列表parseElement方法
2. 将列表表示的算术表达式转换成后缀表达式changeToSuffix
3. 计算后缀表达式的结果
这里我是为了方便, 就写了个parseElement, 不想那方法写到后面却把自己绕住了, 可以想象一个带自增, 位, 逻辑, 算术的表达式的数值提取是多么的复杂...
parseElement自己感觉是一个比较失败的方法, 所以从一个普遍的角度来分析以下算术表达式的解析:
以(A + B) * C / D ** E + F * G为例
第一部分: 将中缀表达式(上面就是, 具体去查有关前缀, 中缀, 后缀表达式)
这一步需要一个栈用来保存运算符, 一个字符串用来保存输出的后缀表达式
符号栈: signStack
后缀表达式: result
过程: 读取表达式中每个元素(数字或运算符, 我的parseElement意在解决这个问题, 却做的不成功)
原则:
1. 操作数直接输出到result
2. (直接进栈
3. )出栈直到遇到一个"("(注意: 这里"("必须出栈), 中间出栈的元素按出栈顺序输出到result
4. 其他运算符, 检查栈顶元素, 如果栈顶比当前运算符优先级高或相同(优先级相同, 按顺序执行)则先将栈顶出栈, 再入栈.  如果当前元素优先级高, 则直接入栈.
� ......

Python GUI

1. 事件驱动
    一个事件及其回调的例子是鼠标移动。我们假设鼠标指针停在您GUI 程序的某处。如果鼠标被移到了程序的别处,一定是有什么东西引起了屏幕上指针的移动,从而表现这种位置的转移。系统必须处理这些鼠标移动事件才能展现(并实现)鼠标在窗口上的移动。一旦您释放了鼠标,就不再会有事件需要处理,相应地,屏幕上的一切又复归平静。然后API又在这个鼠标事件上封装一层。
    一旦进入主循环,GUI 便从此掌握控制权。所有其他动作都来自回调函数,包括程序退出。
2. 默认值的智慧
GUI 开发从Python 的缺省参数机制获益匪浅,因为Tkinter 组件有大量的默认动作。除非您熟知自己使用的每一个组件的每一个可用选项,否则最好只设置您关心的参数而把其他的交由系统处理。这些缺省值是精心选出的。如果您没有提供这些值也不必担心程序会在屏幕上表现怪异。作为一条基本规则,程序都由一系列经优化的缺省值创建,并且只有当您明确知道如何配置您的组件时,才有必要用自己的值替换这些缺省值。 ......

Python库详解之网络(2)

昨天试了下用HTMLParser类来解析网页,可发现结果并不理想。不管怎么说,先写下过程,希望后来人能在此基础上解决我所遇到的问题。
写了2套解决方案,当然这2套只能对特定网站有效。我这里主要说明下对BBC主页www.bbc.co.uk和对网易www.163.com的解析。
对于BBC:
这套要简单得多,可能是该网页的编码比较标准吧
import html.parser
import urllib.request
class parseHtml(html.parser.HTMLParser):
    def handle_starttag(self, tag, attrs):
        print("Encountered a {} start tag".format(tag))
    def handle_endtag(self, tag):
         print("Encountered a {} end tag".format(tag))
    def handle_charref(self,name):
        print("charref")
    def handle_entityref(self,name):
        print("endtiyref")
    def handle_data(self,data):
        prin ......

学习《Python语言入门》第四章 函数


怎么找不到第三章的学习笔记了?丢了?
Python的函数没有什么的,可以说,看了《简明Python教程》后,就会写了。
这一章提供的内容也比《简明Python教程》要多一些。比较复杂的是作用域规则,不知道是书没讲清楚还是翻译得不好,比较难懂。钱能的《C++程序教程》关于函数的作用域规则讲得要清楚些,有C++的知识在里面,理解Python的函数作用域规则,好懂很多。似乎两者也没有什么区别。
函数参数方面有些不一样,C++的值传递、指针传递、引用传递分得很清楚。而Python的参数传递有些不能改变参数的值,有些是可以的。需要小心的对付。还有关键字的参数、可变参数,都是C++没有的内容。Python的函数可以不用return,但是后面的设计概念还是建议要用return返回。
lambda、map、apply这些工具很方便,有脚本的影子在里面。
最让我惊奇的是“函数是对象: 非直接调用”这一小节。Python中函数的灵活是C++所不可比的。Python的函数就像一小团粘土一样,可以揉过来搓过去的使用。
“函数常见的问题”确实让我这个新手迷糊了,暂时先不提它们吧。而且这一节里面的例子似乎有问题,有一些书上说不能运行,但在我的Python中却能运行;另有一些说能运行,但� ......

开发Python用什么工具好?

    工欲善其事必先利其器!
    开发Python用什么工具好呢?其实刚学Python的话,使用IDLE就够了,虽然调试不是特别方便,但是对于初学已经够了,可以使用Print进行简单的调试,不建议使用记事本进行开发,不知道的认为你很牛,知道的……这是自己给自己找罪受,用Editplus貌似也行,有语法高亮功能,也支持调用外部shell来执行程序,捕获程序输出。
    更强大的IDE应该有自动提示,完备的调试和语法高亮功能,当然缩进也应该更好的支持,尤其对于Python这种强制缩进的语言,自动提示功能是指,你输入一个函数的自动提示参数,或者输入一个对象的时候自动提示它的成员函数和成员变量,这些都能大大提高编码效率,调试功能也就是debug啦,最好有单步调试功能,单步调试多么重要我就不说了,程序员都明白。当工程很大的时候,怎么管理工程也是问题,Python也一样,当工程很大的时候,文件也很多,此时用IDLE不管是管理工程还是调试显然是不能胜任了。
    说到eclipse,大部分“玩家”会说,这不是开发java的么?是的,eclipse在设计之初是为开发java打造的,但是由于其整个架构非常合 ......

Python库详解之网络(2)

昨天试了下用HTMLParser类来解析网页,可发现结果并不理想。不管怎么说,先写下过程,希望后来人能在此基础上解决我所遇到的问题。
写了2套解决方案,当然这2套只能对特定网站有效。我这里主要说明下对BBC主页www.bbc.co.uk和对网易www.163.com的解析。
对于BBC:
这套要简单得多,可能是该网页的编码比较标准吧
import html.parser
import urllib.request
class parseHtml(html.parser.HTMLParser):
    def handle_starttag(self, tag, attrs):
        print("Encountered a {} start tag".format(tag))
    def handle_endtag(self, tag):
         print("Encountered a {} end tag".format(tag))
    def handle_charref(self,name):
        print("charref")
    def handle_entityref(self,name):
        print("endtiyref")
    def handle_data(self,data):
        prin ......
总记录数:695; 总页数:116; 每页6 条; 首页 上一页 [97] [98] [99] [100] 101 [102] [103] [104] [105] [106]  下一页 尾页
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号