鱼C论坛

 找回密码
 立即注册
楼主: ~风介~

[技术交流] #鱼C五周年狂欢预热#第三弹(已结束)

  [复制链接]
发表于 2015-1-15 11:04:57 | 显示全部楼层

回帖奖励 +3 鱼币

下午 发个模版试试  毕竟学了一个多月了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-15 11:12:16 | 显示全部楼层
本帖最后由 挥舞乾坤 于 2015-1-15 11:23 编辑

比2弹难多了
  1. import re
  2. s,oper = input('输入表达式:'),{'+':2,'-':2,'*':1,'/':1,'#':3,'(':4,')':4}
  3. def nibolan(s):
  4.     result,operlist,slist, = [],['#'],re.findall(r'\d+[.]?\d*|^\-\d+[.]?\d*|\(\-\d+[.]?\d*|[\-\+\*\/\(\)]',s)
  5.     for each in slist:
  6.         if each not in oper:
  7.             result.append(int(each))
  8.         else:
  9.             if each == '(':
  10.                 operlist.append(each)
  11.             elif each == ')':
  12.                 while operlist[len(operlist)-1] != '(':
  13.                     result.append(operlist.pop())
  14.                 operlist.pop()
  15.             else:
  16.                 while oper[operlist[len(operlist)-1]] <= oper[each]:
  17.                     result.append(operlist.pop())
  18.                 operlist.append(each)
  19.     while len(operlist) > 1:
  20.         result.append(operlist.pop())        
  21.     return ' '.join([str(x) for x in result])
  22. print(nibolan(s))
复制代码

冒失很长,继续研究

评分

参与人数 1鱼币 +5 收起 理由
~风介~ + 5 运行结果只有符号,继续加油哦!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-15 12:22:30 | 显示全部楼层
挥舞乾坤 发表于 2015-1-15 11:12
比2弹难多了

冒失很长,继续研究

什么情况?
  1. >>>
  2. 输入表达式:a+(b-c)*d
  3. - * +
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-15 12:24:37 | 显示全部楼层

回帖奖励 +3 鱼币

:huffy:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-1-15 12:45:08 | 显示全部楼层

回帖奖励 +3 鱼币

各位加油!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-15 13:34:48 | 显示全部楼层

回帖奖励 +3 鱼币

先支持一下,刚Google和百度了一下啥叫’逆波兰表达式‘,回头了想一想怎么写。
问一下,这一弹什么时候结束呢?

评分

参与人数 1鱼币 +30 收起 理由
wei_Y + 30

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-15 13:36:21 | 显示全部楼层
本帖最后由 挥舞乾坤 于 2015-1-21 11:37 编辑

龌龊的牺牲效率,换来减少行数....
  1. import re;s,oper,result = input('输入表达式:').replace(' ',''),{'+':2,'-':2,'*':1,'/':1,'#':3,'(':4,')':4},[];operlist,slist, = ['#'],re.findall(r'\w+[.]?\w*|^\-\w+[.]?\w*|(?<=[\-\+\*\/\(])\-\w+[.]?\w*|[\-\+\*\/\(\)]',s)
  2. for each in slist:
  3.     if each == '(':operlist.append(each);continue
  4.     if each == ')':
  5.         while operlist[-1] != '(':result.append(operlist.pop())
  6.         operlist.pop();continue
  7.     if each not in oper:result.append(each);continue
  8.     while oper[operlist[-1]] <= oper[each]:result.append(operlist.pop())
  9.     operlist.append(each)
  10. while len(operlist) > 1:result.append(operlist.pop())
  11. print(' '.join([str(x) for x in result]))
复制代码

评分

参与人数 2荣誉 +1 鱼币 +6 收起 理由
戴宇轩 + 1 + 1 短 &gt; 效率
~风介~ + 5 不错不错,功能齐全了,接下来就是改短了~

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-15 14:09:00 | 显示全部楼层

回帖奖励 +3 鱼币

拿人钱财,替人消灾
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-15 14:14:55 | 显示全部楼层

回帖奖励 +3 鱼币

支持楼主。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-15 14:37:16 | 显示全部楼层

回帖奖励 +3 鱼币

:shy:我来捧场的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-15 14:56:54 | 显示全部楼层
鱼友们加油!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-15 15:13:46 | 显示全部楼层

回帖奖励 +3 鱼币

支持。。。支持。。。。。。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-15 15:14:44 | 显示全部楼层

回帖奖励 +3 鱼币

支持一下!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-15 15:16:14 | 显示全部楼层
支持一下!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-15 15:52:05 | 显示全部楼层

回帖奖励 +3 鱼币

帮忙顶贴。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-15 16:32:07 | 显示全部楼层

回帖奖励 +3 鱼币

激动人心,。。。。。{:1_1:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-15 16:34:40 | 显示全部楼层
一定要用Python吗?c行吗

评分

参与人数 1鱼币 +5 收起 理由
~风介~ + 5 热爱鱼C^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-15 16:55:50 | 显示全部楼层
梦幻一生 发表于 2015-1-15 16:34
一定要用Python吗?c行吗

主要是因为这个活动实在python板块举办的,所以你懂的~
请谅解哈~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-15 17:22:01 | 显示全部楼层

回帖奖励 +3 鱼币

真的不会呀,捧场 捧场:lol:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-15 18:02:15 | 显示全部楼层

回帖奖励 +3 鱼币

打个酱油:lol:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-28 06:50

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表