TypeError: неверный тип операнда для унарного +: 'str' python

number=int(input("Please enter a number:     "))

for b in range(1,11):
    b=int(b)
    output=int (number) *int (b)
    print(+str (b) +" times "+ str (number) +" is " +output)

Я хочу, чтобы программа запросила число, а затем распечатала свою таблицу умножения до 10 * число, однако я продолжаю получать эту ошибку. Кстати, я делаю вычисления GCSE.

Traceback (most recent call last):
File "C:\Users\jcowp_000\Documents\School\Lutterworth\Computing\Documents_-_-___________---________---______-_-_-_-__-__\Python\Python manual tasks.py", line 21, in <module>
print(+str (b) +" times "+ str (number) +" is " +output)
TypeError: bad operand type for unary +: 'str'

person t.cowp    schedule 20.10.2015    source источник
comment
Почему ты делаешь b = int(b)? b уже является int. Кроме того, что вы пытаетесь сделать с помощью +str(b)?   -  person dorverbin    schedule 20.10.2015
comment
Я хочу, чтобы он печатал, например, 1 раз 5 равно 5, 2 раза 5 равно 10 и т. д.   -  person t.cowp    schedule 20.10.2015
comment
завершающий + не должен быть там, и вы также должны преобразовать свой вывод в строку. В противном случае Python не будет знать, хотите ли вы выполнить конкатенацию строк или сложение чисел.   -  person chiffa    schedule 20.10.2015
comment
где str(b) является 1 или 2 в моем примере   -  person t.cowp    schedule 20.10.2015
comment
как вы конвертируете вывод в строку   -  person t.cowp    schedule 20.10.2015


Ответы (1)


Я думаю, это то, что вы пытаетесь сделать:

number = int(input("Please enter a number:     "))

for b in range(1,11):
    output = int(number) * b   # b is already an int, you can use it directly in computations
    print(str(b) + " times " + str(number) + " is " + str(output))

Обратите внимание, что +str(b) является неправильным синтаксисом, а также обратите внимание, что вы не можете конкатенировать " is", который является str, с output, который является int.

person dorverbin    schedule 20.10.2015
comment
это прозвучало саркастично - person t.cowp; 20.10.2015
comment
хотя этот ответ правильный, я хотел бы отметить, что int(b) не имеет смысла, как уже было предложено @Donald в комментариях выше. Вы можете просто сделать output = int(number) * b - person krato; 20.10.2015