下面是我的代码:
def interpret(value, commands, args):
ans = 0
valid = ['+','-','*']
if set(commands).issubset(valid):
for ope,arg in zip(commands,args):
ans = eval(r'value ope arg')
value = ans
return print (ans)
else :
return print('-1')
def main():
interpret(1, ['+'], [1])
if __name__ == '__main__':
main()
尝试过eval(value+ope+arg
),但出现错误
TypeError: unsupported operand type(s) for +: 'int' and 'str'
还寻找了其他解决方案,例如使用正则表达式然后对其进行评估,但无法评估该表达式
预期答案= 2
答案 0 :(得分:0)
与其他一些语言不同,Python在使用+
运算符连接字符串时不会自动将数字转换为字符串。您必须明确地进行此转换。
ans = eval(str(value)+ope+str(arg))