24点游戏 python_用python做24点游戏

今天看视频 突然想到以前edward说过的那道写24点c语言程序。随便用python写了下。 但是这都是无重复数字 重复运算符号版本

import itertools

'''election ={1:"Barb",2:"Karen",3:"Erin"}

for p in itertools.permutations(election):

print(p)

for p1 in itertools.permutations(election.values()):

print(p1)

co=["work","eat","play"]

colorForPainting = ["Red","Blue","Purple","Orange","Yellow","Pink"]

for c in itertools.combinations(colorForPainting,2):

print(c)

'''

numcombinSet=[]

opcombinSet=[]

a=list(range(1,11))

answer=0

good_num=[]

good_op=[]

#test_num=[4,7,1,5]

#test_op=["mul","plus","minus"]

def alu(numm,opp):

answer = numm[0]

for i in range(3):

if opp[i] == "plus":

answer=answer+numm[i+1]

elif opp[i] == "minus":

answer=answer-numm[i+1]

elif opp[i] == "mul":

answer=answer*numm[i+1]

elif opp[i] == "divide":

answer=answer/numm[i+1]

else:

raise "op error"

print(answer)

#

if answer == 24:

good_num.append(numm)

good_op.append(opp)

else:

pass

# print("not found")

# pass

#alu(test_num,test_op)

#print(answer)

for numcombin in itertools.permutations(a,4):

numcombinSet.append(numcombin)

b=["plus","minus","mul","divide"]

for op in itertools.permutations(b,3):

opcombinSet.append(op)

print(opcombinSet[1])

len_numcombin=len(numcombinSet)

len_opcombin=len(opcombinSet)

print("num have "+str(len_numcombin))

print("op have "+str(len_opcombin))

for i in range(len_numcombin):

for j in range(len_opcombin):

num_test=numcombinSet[i]

op_test=opcombinSet[j]

alu(num_test,op_test)

print(good_num)

#print(numcombinSet[1])

#print(opcombinSet[0])

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值