[原创]24点
下了python3.1,写了一个24点的程序练手。
#! /usr/bin/env python #coding=utf-8 import operator import itertools import functools def compute(a, b, c, d, total): for guess_num in itertools.permutations([a,b,c,d], 4): for guess_op in itertools.product(['+','-','*','/'],repeat=3): tmp_list = [(num, op) for (num, op) in itertools.zip_longest(guess_num, guess_op, fillvalue='')] expression = functools.reduce(operator.add, map(lambda x : x[0] + x[1],tmp_list)) res = eval(expression) if abs(float(res) - float(total)) < 0.001: print(expression + ' = ' + total) return print("None.") if __name__ == '__main__': compute('2','11','9','8','24')