这是我的代码:
snumA = random.sample([4,8,3], 1)
snumB = random.sample([7,2,6], 1)
snumC = random.sample([1,5,9], 1)
sgnA = random.choice(['+','-','/','*'])
sgnB = random.choice(['+','-','/','*'])
sgnC = random.choice(['+','-','/','*'])
if sgnA == '-' :
sum1 = snumA - bnumA
print 'minus'
if sgnA == '/' :
sum1 = snumA / bnumA
print 'divide'
每当我运行此代码时,我都会收到一条错误消息,告诉我操作数是列表而不是整数。我到处寻找,我仍然不知道该怎么做。我可以帮忙吗?
答案 0 :(得分:4)
更改为:
snumA = random.choice([4,8,3])
将为您提供int
而不是list
。为了更好地理解这里的错误,您尝试使用列表(因为random.sample
返回列表类型结果)作为整数来进行错误的算术运算。
另一方面,random.choice
执行您想要的操作但返回int
输入结果 - 这样你就不会收到错误。
答案 1 :(得分:2)
问题是:snumA = random.sample([4,8,3], 1)
返回一个元素的列表(例如:[3])。你可以做的是:
使用直接返回整数的snumA = random.choice([4,8,3])
。或者,您可以使用snumA[0]
或直接snumA = random.sample([4,8,3], 1)[0]
答案 2 :(得分:1)
所以你要找的代码可能是:
import random
snumA = random.choice([4,8,3])
snumB = random.choice([7,2,6])
snumC = random.choice([1,5,9])
operators = {'+':'Plus', '-':'Minus', '/':'Division','*':'Multiplication'}
sgnA = random.choice(list(operators.keys()))
sgnB = random.choice(list(operators.keys()))
sgnC = random.choice(list(operators.keys()))
print(eval(str(snumA)+sgnA+str(snumB)))
print(operators[sgnA])