content = "1-2*((60-30+(1-40/5*5+3-2*5/3)*(9-2*5/3+7/3*99/4*2998+10*568/14))-(-4*3)/(16-3*2))"
def func(string):
new_list = re.split("\(([^()]+)\)", string, 1)
if len(new_list) > 1:
new_string = new_list[0] + str(eval(new_list[1])) + new_list[2]
return func(new_string)
else:
return new_list[0] print(eval(func(content))) 1、先分割最小括号,"\(([^()]+)\)"
2、用eval来计算最小括号内容,eval取巧了,可以再次用正则来计算。
3、在拼接成新的字符串
4、递归
5、返回无括号的字符串

最新文章

  1. 处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”
  2. caffe初试(一)happynear的caffe-windows版本的配置及遇到的问题
  3. JavaScript的学习3
  4. 配置 samba 实现文件共享
  5. SQL*Loader之CASE7
  6. 这10道javascript笔试题你都会么
  7. Windows Azure 云服务角色架构
  8. asp.net mvc 模型验证-最舒服的验证方式
  9. HTML5 文件异步上传 — h5uploader.js
  10. iOS开发网络篇—GET请求和POST请求(转)
  11. oracle客户端精简绿色版-环境变量配置
  12. 发送邮件(遵循smtp协议即简单的邮件发送协议)
  13. RPI-Wireless-Hotspot
  14. python与编码
  15. java安全编程
  16. Zend Framework在windows下的安装
  17. WinRAR存在严重的安全漏洞影响5亿用户
  18. android linux 传文件
  19. [2017-7-26]Android Learning Day4
  20. Creating adaptive web recommendation system based on user behavior(设计基于用户行为数据的适应性网络推荐系统)

热门文章

  1. 小程序里的自定义组件:组件的外部样式externalClasses的使用
  2. ACM/IOI 国家队集训队论文集锦
  3. 并行操作多个序列map
  4. java调用存储过程的方式
  5. 【leetcode】All Paths From Source to Target
  6. vue-cli3.0以上项目中引入jquery的方法
  7. Linux内核设计与实现 总结笔记(第十二章)内存管理
  8. HDU 6230 Palindrome ( Manacher && 树状数组)
  9. codeforces 819B - Mister B and PR Shifts(思维)
  10. BZOJ 1029 建筑抢修(贪心堆)