zoukankan      html  css  js  c++  java
  • 开始学习python了,第一个程序是一个逆波兰式的表达式分析器

    做了许多年的asp,这两年又是一直在做t-sql,一直想学点新的东西,C#/ASP.NET是必然的了,不过没有给我多大的惊喜,一切都是老套路,倒是python,让我眼前一亮,特别是源代码格式缩进成了语法要求,让我这个写程序十分注意缩进的人非常喜欢。
    这里是我第一个python程序,是一个逆波兰式的表达式分析器,完全照抄另外一个C语言版本的,原作者看到了请见谅哈!
    非常简陋,什么错误检测都没有,纯粹是练笔的东东:
     1#My first python
     2import sys
     3def parse(str):
     4    """Expression Parser"""
     5    (s, exp, i, str) = ([], [], 0, "(" + str + ")#")
     6    while str[i] != "#":
     7        if (str[i] >= '0' and str[i] <= '9'or (str[i] >= 'a' and str[i] <= 'z'):
     8            exp.append(str[i])
     9
    10        elif str[i] == '(':
    11            s.append(str[i])
    12
    13        elif str[i] == ')':
    14            while s[-1!= '(':
    15                exp.append(s.pop())
    16            s.pop()
    17
    18        elif str[i] in ['+''-']:
    19            while s[-1!= '(':
    20                exp.append(s.pop())
    21            s.append(str[i])
    22
    23        elif str[i] in ['*''/']:
    24            while s[-1in ['*''/']:
    25                exp.append(s.pop())
    26            s.append(str[i])
    27        i += 1
    28    print '=============='
    29    print exp
    30
    31if __name__ == "__main__":
    32    parse("a-b*c/(3+6)")
    33

    要是python支持t-sql那样的between语法就好了。
  • 相关阅读:
    判断当天是周几
    九九乘法表
    js创建table表格
    tab切换-自动、点击、内容变换
    必须关注的25位知名JavaScript开发者
    静态路由
    dubbo
    SOA、SOAP、RPC
    【转】spring之任务调度
    Redis-cli命令最新总结【转】
  • 原文地址:https://www.cnblogs.com/ifan/p/1237010.html
Copyright © 2011-2022 走看看