Python写24点小游戏
时间: 2023-08-27 09:37:42 浏览: 38
好的,以下是一个简单的 Python 代码实现24点小游戏:
```python
import itertools
def play_24_game(numbers):
"""
接收一个包含4个整数的列表,判断是否可以通过加减乘除得到结果为24
"""
for a, b, c, d in itertools.permutations(numbers):
# 全排列
for num1, num2, num3 in itertools.product([a+b, a-b, a*b, a/b], repeat=3):
# 符号排列
if num1 + num2 + num3 == 24:
return True
return False
# 例子
print(play_24_game([1, 2, 3, 4])) # True
print(play_24_game([1, 2, 3, 5])) # False
```
这个程序使用了 `itertools` 库中的 `permutations` 和 `product` 方法,其中 `permutations` 方法可以生成包含给定元素的全排列,`product` 方法可以生成给定元素的笛卡尔积。通过遍历这些排列和计算结果,判断是否存在符合条件的计算方式。
相关问题
用Python写一个24点小游戏
可以使用以下代码实现24点小游戏:
```python
import itertools
def calculate(num_list):
operators = ['+', '-', '*', '/']
for op in itertools.product(operators, repeat=3):
expression = num_list[0] + op[0] + num_list[1] + op[1] + num_list[2] + op[2] + num_list[3]
try:
result = eval(expression)
if result == 24:
return expression
except ZeroDivisionError:
pass
return None
def game24():
while True:
num_list = input("请输入四个数字,以空格分隔:").split()
num_list = [int(num) for num in num_list]
if len(num_list) != 4:
print("输入错误,请重新输入!")
continue
expression = calculate(num_list)
if expression:
print("表达式为:", expression)
else:
print("无解!")
game24()
```
这个程序会要求用户输入四个数字,然后计算出能否用加、减、乘、除四种运算符得到24。如果有解,程序会输出表达式,否则会提示无解。
python24点小游戏代码
以下是一个简单的 Python 24 点小游戏代码,希望对你有所帮助:
```python
import itertools
def calc24(nums):
ops = ['+', '-', '*', '/']
for a, b, c, d in itertools.permutations(nums):
for op1, op2, op3 in itertools.product(ops, repeat=3):
exp = f'(({a}{op1}{b}){op2}{c}){op3}{d}'
try:
if abs(eval(exp) - 24) < 1e-9:
return exp
except ZeroDivisionError:
pass
return None
def main():
while True:
nums = input('请输入四个数字(空格分隔):').split()
if len(nums) != 4:
print('输入错误,请重新输入!')
continue
nums = list(map(int, nums))
exp = calc24(nums)
if exp:
print(f'恭喜你,算式 {exp} 的结果是 24!')
else:
print('很遗憾,没有算式的结果是 24。')
if __name__ == '__main__':
main()
```
运行代码后,会提示用户输入四个数字,然后计算这四个数字是否能通过加、减、乘、除四种运算符得到 24。如果能,则输出算式,否则输出提示信息。