完整的代码如下:

# -*- coding: utf-8 -*-
import itertools#with brackets
def with_brackets(lst, ops_lst):for op in ops_lst: #无括号时的运算情形expr1 = '('+lst[0]+op[0]+lst[1]+')'+op[1]+lst[2]+op[2]+lst[3]expr2 = '('+lst[0]+op[0]+lst[1]+op[1]+lst[2]+')'+op[2]+lst[3]expr3 = lst[0]+op[0]+'('+lst[1]+op[1]+lst[2]+')'+op[2]+lst[3]expr4 = '('+lst[0]+op[0]+lst[1]+')'+op[1]+'('+lst[2]+op[2]+lst[3]+')'for expr in [expr1, expr2, expr3, expr4]:try:t=eval(expr)except: #作除法时,跳过分母为0时的情形passif abs(t-24) < 0.001:#float型数值计算存在微小的误差return exprreturn 0#返回4个数计算24的方法
def hasMethod(numbers, ops_lst):for lst in itertools.permutations(numbers):lst = list(map(lambda x:str(x), lst))#without bracketsfor op in ops_lst:expr = lst[0]+op[0]+lst[1]+op[1]+lst[2]+op[2]+lst[3]if abs(eval(expr)-24) < 0.001:return expr#with bracketsexpr = with_brackets(lst, ops_lst)if expr != 0:return exprreturn 0#返回4个数计算24的方法,无方法时返回"No Method"
def cal_24(numbers):ops = ['+','-','*','/']ops_lst = [[i,j,k] for i in ops for j in ops for k in ops]expr = hasMethod(numbers, ops_lst)if expr != 0:return exprelse:return 'No method!'#所有情况的计算24点的办法,并输出到文本文件
def main():outfile=open("H:\\24dian.txt","w")numbers_lst = [[i,j,k,l] for i in range(1,14) for j in range(1,14)\for k in range(1,14) for l in range(1,14)]for numbers in numbers_lst:a = list(map(lambda x: str(x), numbers))methodInfo = "[%s,%s,%s,%s]: %s\n"%(a[0],a[1],a[2],a[3],cal_24(numbers))outfile.write(methodInfo)outfile.close()    main() 

输出的文件如下:

所有的情况可查看文件:https://gitee.com/Jclian91/24DianJiJiSuan



本次分享到此结束,欢迎大家交流与批评~~

Python之计算24点相关推荐

  1. Python快速计算24点游戏并获取表达式

    24 点游戏规则 有4个范围在 [1,9] 的数字,通过「加.减.乘.除」四则运算能够获得24,认为有解. 4个范围在 [1,9] 的数字能够产生495种可能,其中404中组合情况都是有解的,有解概率 ...

  2. python_用python计算24点游戏

    24点的游戏大家都玩过,这次我们用python来算出四张牌的计算24的方法 def calculates(number, n, result):if n == 1:if number[0] == re ...

  3. 无网络服务器(linux ubuntu),pip安装python科学计算所有需要包(packages)

    无网络服务器(linux ubuntu),pip安装python科学计算所有需要包(packages) # 在windows上打开anaconda,进入环境tab页,在base环境处单击,然后点开te ...

  4. python科学计算基础教程pdf下载-python科学计算 第二版 PDF 下载

    相关截图: 资料简介: 本书详细介绍Python科学计算中最常用的扩展库NumPy.SciPy.matplotlib.Pandas.SymPy.TTK.Mayavi.OpenCV.Cython,涉及数 ...

  5. python 科学计算设计_《Python科学计算-(第2版)》怎么样_目录_pdf在线阅读 - 课课家教育...

    第1章 Python科学计算环境的安装与简介 1 1.1 Python简介 1 1.1.1 Python 2还是Python 3 1 1.1.2 开发环境 2 1.1.3 集成开发环境(IDE) 5 ...

  6. Python科学计算库核心知识点总结_代码篇(ML/DL依赖语法)

    Python科学计算库核心知识点总结_代码篇(ML/DL依赖语法)                                                                    ...

  7. Python VTK计算曲面的高斯曲率和平均曲率

    introduction: Python VTK计算曲面的高斯曲率和平均曲率,如何使用户Python版本的VTK计算曲面的高斯曲率并映射在曲面上.使用了两个不同的表面,每个表面根据其高斯曲率和平均曲率 ...

  8. python科学计算—— numpy

    python科学计算-- numpy 1.模块导入 2. 数组的基本属性和操作 2.1 创建一维和二维数组 2.2 常用属性 2.3 调整数组的形状 2.4 将数组转化为list 2.5 numpy的 ...

  9. 初识 Python 科学计算库之 NumPy(创建多维数组对象)

    文章目录 参考 描述 NumPy 特点 获取 导入 多维数组对象 np.array() np.asarray() 范围 随机 概览 np.random.randn() np.random.normal ...

最新文章

  1. 快手EB级HDFS挑战与实践
  2. NSStirng、NSArray、以及枚举(Method小集合)
  3. VMware 没网线 虚拟机和主机互联
  4. vector嵌套vector嵌套pair
  5. ExtJS MVC 学习手记3
  6. SAP Spartacus使用了ngrx library
  7. windows update更新失败 安全模式进不去
  8. httpclient 多附件上传
  9. redis报错解决,MISCONF Redis is configured to save RDB snapshots
  10. 灌醉茅台董事长拿到便宜酒?潘长江和茅台双双回应...
  11. Java多线程编程(3)--线程安全性
  12. phpmyadmin创建账号授权指定表
  13. Ubuntu 14.04 设置静态IP地址全攻略
  14. 对于IT这两个字眼,是不是只能由学习过IT的大学生才能做呢,就由我来为大家讲解一下IT的由来!
  15. Python格式控制之九九乘法表打印
  16. js对象嵌套数组_使用角管过滤嵌套数组和对象的数组并突出显示结果
  17. 掌握这个小技巧,让你的 C++ 编译速度提升 50 倍!
  18. 计算机文件夹操作教案,文件文件和文件夹教案
  19. 【Java容器】Java容器框架解析
  20. 【Python爬虫实战】用urllib与服务端交互(发送和接收数据)

热门文章

  1. 开启所有activex等Internet选项的批处理bat
  2. python自动控制生产线输送线_(完整版)(完整版)自动流水线输送系统设计说明书...
  3. 港大全面封杀ChatGPT,AI作弊丑闻震惊全世界!
  4. win10 intel 9260AC comfast-wp2100 网卡奇怪问题解决
  5. 惊恐!朋友圈照片被打包倒卖,一套只要五块钱?
  6. Photoshop之基础篇
  7. 如何将jpg图片转换为psd格式?教你3招巨简单
  8. 我谈学习型红外遥控(一)
  9. 【钢格板】钢格板压焊机的实际操作和使用方法
  10. MBR分区结构、DPT分区表、EBR扩展引导