python计算24点
以前入门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点相关推荐
- python_用python计算24点游戏
24点的游戏大家都玩过,这次我们用python来算出四张牌的计算24的方法 def calculates(number, n, result):if n == 1:if number[0] == re ...
- Python快速计算24点游戏并获取表达式
24 点游戏规则 有4个范围在 [1,9] 的数字,通过「加.减.乘.除」四则运算能够获得24,认为有解. 4个范围在 [1,9] 的数字能够产生495种可能,其中404中组合情况都是有解的,有解概率 ...
- Python之计算24点
完整的代码如下: # -*- coding: utf-8 -*- import itertools#with brackets def with_brackets(lst, ops_lst):for ...
- python -- 计算 平方、乘方、平方根_从零开始学习PYTHON3讲义(二)把Python当做计算器...
<从零开始PYTHON3>第二讲 上一讲我们说过了如何启动Python IDLE集成开发学习环境,macOS/Linux都可以在命令行执行idle3.Windows则从开始菜单中去寻找ID ...
- 计算机python程序设计导论,程序设计导论:Python计算与应用开发实践(原书第2版)...
程序设计导论:Python计算与应用开发实践(原书第2版) 语音 编辑 锁定 讨论 上传视频 <程序设计导论:Python计算与应用开发实践(原书第2版)>是2018年机械工业出版社出版的 ...
- python计算生态规模_Python计算生态的构建
本专题的内容结构: 第一部分主要是:如何编写Python第三方库(包和模块) 第二部分主要是:如何编写带有c语言扩展的Python第三方库(包和模块) 第一部分的结构: unit1:深入理解Pytho ...
- python根据词向量计算相似度_如何使用gensim的word2vec模型和python计算句子相似度...
如何使用gensim的word2vec模型和python计算句子相似度 根据Gensim Word2Vec,我可以使用gensim包中的word2vec模型来计算2个单词之间的相似度. 例如 trai ...
- MOOC《Python语言程序设计》(第15次)Python计算生态概览(第九周)
MOOC<Python语言程序设计>(第15次) Python计算生态概览(第九周)21.8.26 文章目录 MOOC<Python语言程序设计>(第15次) Python计算 ...
- Python快速编程入门#学习笔记02# |第十章 :Python计算生态与常用库(附.小猴子接香蕉、双人乒乓球小游戏源码)
全文目录 学习目标 1. Python计算生态概述 1.1 Python计算生态概述 2. Python生态库的构建与发布 2.1 模块的构建与使用 * 2.1.1第三方库/模块导入的格式 2.2 包 ...
最新文章
- centos6_64位系统安装部署puppet(master、agent)
- 个人信息安全 不能止于“打补丁”
- python编程django项目中ModuleNotFoundError: No module named ‘django.core.urlresolvers‘解决方法
- elasticsearch java对象 驼峰原则_Elasticsearch简介与实战
- 学习在.NET Core中使用RabbitMQ进行消息传递之持久化(二)
- 【 Grey Hack 】记一次被黑经历
- 重新学习操作系统的知识
- 玩转 Numpy 的精选习题
- .Net Core[译文]
- 发那科机器人圆弧指令怎么用_发那科机器人应用-运动指令入门(1)
- 自定义listview实现第一章之“初九”
- 搜狐自媒体还是蛮拼的 竟拉着加多宝做了一档美食节目
- DNS-named服务器配置
- 本体技术视点 | 数据的去中心化协作和可信流动(一)
- 手机访问计算机FTP服务器
- mysql ssl 2026_解决连接到 Amazon RDS for MySQL 或 Aurora 实例时的 ERROR 2026 SSL 连接错误...
- Hyperledger Fabric 入门必读书籍
- 2023年天津农学院专升本招生计划及专业报考范围
- 圆形led屏幕_看一看,密云区LED圆形显示屏订购
- 2000-2020年全国各省财政收支分类明细数据