Python 如何使用列表存储可以在函数中使用的运算符?
我是python新手,非常感谢您的帮助 如果我在手动输入值的地方编写eval语句,它就可以正常工作Python 如何使用列表存储可以在函数中使用的运算符?,python,list,random,operators,Python,List,Random,Operators,我是python新手,非常感谢您的帮助 如果我在手动输入值的地方编写eval语句,它就可以正常工作 x = input("Enter a number: ") y = input("Enter another number: ") o = input("Enter calculation symbols for calculation you want to perform: ") result = eval(x + o + y) p
x = input("Enter a number: ")
y = input("Enter another number: ")
o = input("Enter calculation symbols for calculation you want to perform: ")
result = eval(x + o + y)
print("result is: %s" %result)
但是当我试图编写eval语句从列表中提取变量时,我得到了一个“不支持的+操作数类型:'int'和'str'”错误
随机输入
x = [1, 2, 3, 4, 5, 6, 7, 8, 9];
y = [1, 2, 3, 4, 5, 6, 7, 8, 9];
o = ['+', '-', '*', '/'];
rx = random.choice(x)
ry = random.choice(y)
ro = random.choice(o)
result = eval(rx + ro + ry)
print("The result is: %s" %result)
我已经尝试过更改变量类型,但至少在我看来,问题在于运算符变量类型,我不知道如何更正
谢谢你的帮助
rx
是一个数字,ro
是一个字符串。连接字符串和数字将导致此错误。您首先不应该使用eval
,请参阅上面的链接副本。这是一个相当仓促的关闭。代码中的实际问题是x
和y
数组包含整数类型,而o
包含字符串类型。你可以做eval((str(rx)+ro+str(ry))
这很有效。谢谢你的帮助。