24点游戏说明
- 随机选取四张牌,1-K 对于 1-13
- 你要使用+ - * / 还有() 进行基本的四则运算,使得它们的值为24
思路
- 利用random模块提供的random.randint()函数随机产生四张牌
- 利用python提供的eval()可以执行在字符串中表达式的功能,可能读取输入并且计算得到的值
- 因为eval()函数可能不安全,所以需要使用python的集合类型进行判断,保证输入的字符串只含有数字和符号
'''
24点游戏
'''
import random
class Game(object):
def __init__(self):
self.curCard = []
def getCard(self):
for i in range(4):
self.curCard.append(str(random.randint(1,13)))
def start(self):
self.curCard = []
self.getCard()
self.showCard()
self.answer()
def showCard(self):
print(f'你拿到的牌是:{self.curCard[0]} {self.curCard[1]} {self.curCard[2]} {self.curCard[3]}')
def answer(self):
print('-->>请在下面输入答案,你的输入只能包含数字和这些运算符: + - * / ( ) ')
print('-->>输入-1为放弃(拿到的牌不一定可以组成24)')
a = input('答案:')
if a == '-1':
print('你放弃了游戏')
else:
if set(a) - set(self.curCard) - set(['+','-','*','/','(',')']) == set():
b = eval(a)
if b == 24:
print('你的结果为24,你赢了')
else:
print(f'你的结果为{b}')
else:
print('你的输入含有非法字符')
if __name__ == "__main__":
a = Game()
a.start()