Как мне преобразовать список в целое число?

#python

#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'
  

Всякий раз, когда я запускаю этот код, я получаю сообщение об ошибке, сообщающее мне, что мои операнды являются списками, а не целыми числами. Я искал везде и до сих пор не знаю, что делать. Не могли бы вы мне помочь, пожалуйста?

Комментарии:

1. random.sample выдает список. Может быть, вы хотели random.choice .

Ответ №1:

Изменить на :

 snumA = random.choice([4,8,3])
  

что даст вам int вместо a list . Чтобы лучше понять, ошибка здесь заключается в том, что вы пытаетесь использовать списки (причина random.sample возвращает результат типа списка) как целые числа для выполнения арифметических операций, что является false .
С другой стороны random.choice , делает то, что вы хотите, но возвращает int
тип result — так что вы не получите ошибку.

Ответ №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]

Ответ №3:

  1. Как предлагалось ранее, используйте random.choice
  2. bnumA не определен. Приведенный ниже код предполагает, что вы имели в виду snumB

Итак, код, который вы ищете, может быть:

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