读入一行整数并在Python中执行操作

读入一行整数并在Python中执行操作,python,Python,我可以逐行读取整数,但我不确定如何修改代码,使其在这个问题中读取一行5个整数 爱丽丝发明了一种新的纸牌游戏来和鲍勃玩。爱丽丝做了一副随机值在1到52之间的牌。鲍勃选了5张牌。然后,他必须重新排列卡片,以便通过使用加号、减号或时间运算,卡片的值达到Alice最喜欢的数字。42更精确地查找(((val1 op1 val2)op2 val3)op3 val4)op4 val)=42的操作。通过编写程序来帮助Bob确定是否有可能达到给定的5个卡值。例如,Bob从包含40、1、3、4和20的牌组中挑选5张

我可以逐行读取整数,但我不确定如何修改代码,使其在这个问题中读取一行5个整数

爱丽丝发明了一种新的纸牌游戏来和鲍勃玩。爱丽丝做了一副随机值在1到52之间的牌。鲍勃选了5张牌。然后,他必须重新排列卡片,以便通过使用加号、减号或时间运算,卡片的值达到Alice最喜欢的数字。42更精确地查找(((val1 op1 val2)op2 val3)op3 val4)op4 val)=42的操作。通过编写程序来帮助Bob确定是否有可能达到给定的5个卡值。例如,Bob从包含40、1、3、4和20的牌组中挑选5张牌。Bob重新排列卡并提供四个操作,以便4*20-40+3-1=42。输入:输入由一行上的五个整数组成,用空格分隔。每个整数都在1和52之间(包括1和52),输出:如果根据游戏规则可以达到值42,则打印一行,其中包含“是”,否则打印“否”。 测试输入:
4013420
预期输出:
YES

我的解决方案,但它逐行读取数字:

import itertools

def Permutations(Lst,size):
    return list(itertools.permutations(Lst,size))

def expression(lst1,lst2):
    for x in lst1:
        for i in lst2:
            op1=i[0]
            op2=i[1]
            op3=i[2]
            op4=i[3]

            str1=str(x[0])+op1+str(x[1])
            str2=str(str1)+op2+str(x[2])
            str3=str(str2)+op3+str(x[3])
            str4=str(str3)+op4+str(x[4])
            exp=eval(str4)

            if(exp==42):
                return True
    return False

Numbers=[]
i=0
while(i<5):
    n=int(input())
    Numbers.append(n)
    i=i+1

NumPermutations=Permutations(Numbers,5)

Operators=['+','-','*','+','-','*']

OpPermutations=Permutations(Operators,4)

Result=expression(NumPermutations,OpPermutations)

if(Result==True):
    print("\nYES")
else:
    print("\nNO")
导入itertools
def排列(Lst,大小):
返回列表(itertools.排列(Lst,大小))
def表达式(lst1、lst2):
对于lst1中的x:
对于lst2中的i:
op1=i[0]
op2=i[1]
op3=i[2]
op4=i[3]
str1=str(x[0])+op1+str(x[1])
str2=str(str1)+op2+str(x[2])
str3=str(str2)+op3+str(x[3])
str4=str(str3)+op4+str(x[4])
exp=eval(str4)
如果(exp==42):
返回真值
返回错误
数字=[]
i=0
而(i
Numbers=list(map(int,input().split())
Numbers=list(map(int,input().split()))
import itertools

def Permutations(Lst,size):
    return list(itertools.permutations(Lst,size))

def expression(lst1,lst2):
    for x in lst1:
        for i in lst2:
            op1=i[0]
            op2=i[1]
            op3=i[2]
            op4=i[3]
        
            str1=str(x[0])+op1+str(x[1])
            str2=str(str1)+op2+str(x[2])
            str3=str(str2)+op3+str(x[3])
            str4=str(str3)+op4+str(x[4])
            exp=eval(str4)

            if(exp==42):
                return True
    return False

Numbers=[int(i) for i in input().split(" ")] #Change in code here.

NumPermutations=Permutations(Numbers,5)

Operators=['+','-','*','+','-','*']

OpPermutations=Permutations(Operators,4)

Result=expression(NumPermutations,OpPermutations)

if(Result==True):
    print("\nYES")
else:
    print("\nNO")