以前入门python的时候为了让自己学得更有兴趣一些,自己写了一段代码来计算二十四点,现在贴出来

from fractions import Fraction
#Fraction用来做分数运算很好用

def oper_func(dict_x, dict_y):'''

    :param dict_x:上一次的计算结果的字典  key为运算过程 value是计算值
    :param dict_y:上一次的计算结果的字典  key为运算过程 value是计算值
    :return:
    '''

    def add(x, y):result = x + yoper_desc = str(x) + ' + ' + str(y) + ' = ' + str(result)return result, oper_descdef sub(x, y):result = x - yoper_desc = str(x) + ' - ' + str(y) + ' = ' + str(result)return result, oper_descdef sub_reverse(x, y):return sub(y, x)def mul(x, y):result = x * yoper_desc = str(x) + ' * ' + str(y) + ' = ' + str(result)return result, oper_descdef div(x, y):if y == 0:result = 0
            oper_desc = str(x) + ' * ' + str(y) + ' = ' + str(result)else:result =  Fraction(x, y)oper_desc = str(x) + ' / ' + str(y) + ' = ' + str(result)return result, oper_descdef div_reverse(x, y):return div(y, x)dict_result = {}opers = [add, sub, sub_reverse, mul, div, div_reverse]for kx in dict_x.keys():for ky in dict_y.keys():for oper in opers:if len(kx) != 1:k1 = kx + ' | '
                else:k1 = ''

                if len(ky) != 1:k2 = ky + ' | '
                else:k2 = ''

                result, oper_desc = oper(dict_x[kx], dict_y[ky])dict_result[k1 + k2 + oper_desc] = resultreturn dict_resultdef cal_list(dict_list, calc_result):in_list = dict_list.copy()for i in range(len(in_list)):for j in range(len(in_list)):if i < j:dict_result = oper_func(in_list[i], in_list[j])if len(in_list) == 2:for k in dict_result.keys():calc_result[k] = dict_result[k]else:next_list = []next_list.append(dict_result)for k in range(len(in_list)):if k != i and k != j:next_list.append(in_list[k])cal_list(next_list, calc_result)def cal_main(*args):dict_list = []for i in range(len(args)):dict_list.append({str(i): args[i]})calc_result = {}cal_list(dict_list, calc_result)out_list = []for k in calc_result.keys():if calc_result[k] == 24:#下面一个语句就是用来排版的,把竖线对齐
             k = '|'.join(x.rjust(15) for x in k.split('|'))out_list.append(k)if not out_list:out_list.append('No!!!!!!!!!')return out_list#下面是测试语句
result_list = cal_main(3, 6, 7, 1)for i in result_list:print(i)

python计算24点相关推荐

  1. python_用python计算24点游戏

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

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

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

  3. Python之计算24点

    完整的代码如下: # -*- coding: utf-8 -*- import itertools#with brackets def with_brackets(lst, ops_lst):for ...

  4. python -- 计算 平方、乘方、平方根_从零开始学习PYTHON3讲义(二)把Python当做计算器...

    <从零开始PYTHON3>第二讲 上一讲我们说过了如何启动Python IDLE集成开发学习环境,macOS/Linux都可以在命令行执行idle3.Windows则从开始菜单中去寻找ID ...

  5. 计算机python程序设计导论,程序设计导论:Python计算与应用开发实践(原书第2版)...

    程序设计导论:Python计算与应用开发实践(原书第2版) 语音 编辑 锁定 讨论 上传视频 <程序设计导论:Python计算与应用开发实践(原书第2版)>是2018年机械工业出版社出版的 ...

  6. python计算生态规模_Python计算生态的构建

    本专题的内容结构: 第一部分主要是:如何编写Python第三方库(包和模块) 第二部分主要是:如何编写带有c语言扩展的Python第三方库(包和模块) 第一部分的结构: unit1:深入理解Pytho ...

  7. python根据词向量计算相似度_如何使用gensim的word2vec模型和python计算句子相似度...

    如何使用gensim的word2vec模型和python计算句子相似度 根据Gensim Word2Vec,我可以使用gensim包中的word2vec模型来计算2个单词之间的相似度. 例如 trai ...

  8. MOOC《Python语言程序设计》(第15次)Python计算生态概览(第九周)

    MOOC<Python语言程序设计>(第15次) Python计算生态概览(第九周)21.8.26 文章目录 MOOC<Python语言程序设计>(第15次) Python计算 ...

  9. Python快速编程入门#学习笔记02# |第十章 :Python计算生态与常用库(附.小猴子接香蕉、双人乒乓球小游戏源码)

    全文目录 学习目标 1. Python计算生态概述 1.1 Python计算生态概述 2. Python生态库的构建与发布 2.1 模块的构建与使用 * 2.1.1第三方库/模块导入的格式 2.2 包 ...

最新文章

  1. centos6_64位系统安装部署puppet(master、agent)
  2. 个人信息安全 不能止于“打补丁”
  3. python编程django项目中ModuleNotFoundError: No module named ‘django.core.urlresolvers‘解决方法
  4. elasticsearch java对象 驼峰原则_Elasticsearch简介与实战
  5. 学习在.NET Core中使用RabbitMQ进行消息传递之持久化(二)
  6. 【 Grey Hack 】记一次被黑经历
  7. 重新学习操作系统的知识
  8. 玩转 Numpy 的精选习题
  9. .Net Core[译文]
  10. 发那科机器人圆弧指令怎么用_发那科机器人应用-运动指令入门(1)
  11. 自定义listview实现第一章之“初九”
  12. 搜狐自媒体还是蛮拼的 竟拉着加多宝做了一档美食节目
  13. DNS-named服务器配置
  14. 本体技术视点 | 数据的去中心化协作和可信流动(一)
  15. 手机访问计算机FTP服务器
  16. mysql ssl 2026_解决连接到 Amazon RDS for MySQL 或 Aurora 实例时的 ERROR 2026 SSL 连接错误...
  17. Hyperledger Fabric 入门必读书籍
  18. 2023年天津农学院专升本招生计划及专业报考范围
  19. 圆形led屏幕_看一看,密云区LED圆形显示屏订购
  20. 2000-2020年全国各省财政收支分类明细数据

热门文章

  1. 美妆算法---人脸审美标准
  2. 使用者——初见Pixhawk
  3. 关于高德地图定位跑到非洲的情况。
  4. ROS下运行ORB-SLAM实例教程
  5. 无线接入点AC设备配置命令大全
  6. 关注电动汽车 (EV) 能效水平 提高电动汽车续航能力
  7. Bitmap压缩算法(RLE,ROARING)
  8. linux内核开文件系统,新手,Linux内核无法挂载根文件系统
  9. 华为云账号注册登录快捷入口
  10. C语言位运算之有符号数和无符号数