stack



def calx(op, a, b):

    if op == 'mul':
        return str(int(a) * int(b))
    elif op == 'add':
        return str(int(a) + int(b))
    elif op == 'div':
        if b == '0':
            return 'error'
        else:
            return str(int(a) / int(b))
    elif op == 'sub':
        return str(int(a) - int(b))


def funx(ss):

    ops = []
    num = []

    for p in ss.split(' '):
        if p[0] == '(':
            ops += [p.strip('(')]

        elif p[-1] == ')':

            b = p.strip(')')
            a = num.pop()
            res = calx(ops.pop(), a, b)
            
            if res == 'error': return res
            if ops:
                num += [res]
            else:
                return str(res)

        else :
            num += [p.strip(')')]


    while ops:

        b = num.pop()
        a = num.pop()

        res = calx(ops.pop(), a, b)
        if res == 'error': return res
        if ops:
            num += [res]
        else:
            return str(res)
         
ss = '(sub (add 1 4) (div 9 (sub 11 8)))'
#parts = ss.split(' ')
funx(ss)

import re

def func(ss):
    
    patt = re.compile('\(\w+ \d+ \d+\)')
    
    while True:
        
        outs = patt.findall(ss)

        if len(outs) == 0:
            return ss
            
        for i in outs:
            
            tmp_i = i[1:-1].split(' ')
            tmp = calx(tmp_i[0], tmp_i[1], tmp_i[2])
            print tmp
            if tmp == 'error': 
                return 'error'
                
            ss = ss.replace(i, tmp)
            


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Z-Stack 3.0.x is TI's Zigbee 3.0 compliant protocol suite for the CC2530, CC2531, and CC2538 Wireless MCU. Supports the CC2592 and CC2590 RF front ends which extend up to +22dBm and +14dBm transmit power, respectively, and provide improved receiver sensitivity Z-Stack 3.0 combines multiple previous Zigbee profiles into one unified standard Incorporates the unified Zigbee Cluster Library which is at the foundation of dotdot, the universal language for IoT applications defining data objects, models and functionalities for embedded IoT applications Implements Zigbee Base Device Behavior specification, which defines a common set of mechanisms for network forming, discovering, and application provisioning to be used by all Zigbee devices Based on Zigbee PRO 2015 stack, it provides new and improved security modes, including Install Codes for out-of-band key exchange, and Distributed Security Networks for Coordinator-less network topology Supports Green Power Proxy, allowing energy-harvesting and ultra-low power devices to connect seamlessly to a Zigbee network Forwards and backwards compatibility with previous Zigbee PRO and application profiles is maintained Sample Applications included for quick prototyping, including door lock, thermostat, light and switch, and temperature sensor Zigbee Network Processor firmware, providing an abstracted access to the Zigbee Pro 2015 stack and Base Device Behavior functionality via a serial port for two-chip architectures Zigbee-based applications Over-the-air firmware upgrade and serial bootloader capability, allowing for future updates of deployed systems Compatible with TI's Z-Stack Linux Gateway, a reference implementation of an Ethernet-to-Zigbee gateway using a Linux-based platform as host processor, that makes it easy to integrate applications on top of an IP-based interface which abstracts Zigbee protocol functionality to the users.

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值