如何将列表转换为整数?

时间:2016-10-08 11:40:37

标签: python

这是我的代码:

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'

每当我运行此代码时,我都会收到一条错误消息,告诉我操作数是列表而不是整数。我到处寻找,我仍然不知道该怎么做。我可以帮忙吗?

3 个答案:

答案 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)

  1. 如前所述,请使用random.choice
  2. bnumA未定义。下面的代码假设您的意思是snumB
  3. 所以你要找的代码可能是:

    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])