str
является классом, и, как указано в документах , вы можете передать ему до 3 параметров:
class str(object=b'', encoding='utf-8', errors='strict')
Кроме того, он также говорит, что делает:
Возвращает строковую версию объекта. Если объект не указан, возвращает пустую строку.
Это означает, что он используется для приведения других типов к строке. Таким образом, вам нужно преобразовать каждый int индивидуально:
users[n]["Transactions"] = users[n]["Transactions"] + str(names_f) + " bought " + str(quanti) + " of " + str(final[choice*3]) + " with a total price of " + str(price)
Обратите внимание на пробелы до и после каждой строки. Кроме того, вы можете отформатировать вашу строку:
users[n]["Transactions"] = users[n]["Transactions"] + '%s bought %s of %s with a total price of %s' % (names_f, quanti, final[choice*3], price)
В качестве примечания стоит проверить, что происходит при выполнении первой транзакции. Если ключ Transactions
еще не существует, вам нужно добавить начальное значение перед тем, как получить к нему доступ.
Обычно я делаю это следующим образом:
if key not in dict_:
dict_[key] = 'my initial value'
dict_[key] += 'add my stuff'
другое решение будет использовать * Метод 1026 *, который позволяет добавить значение по умолчанию:
dict_.get(key, 'default')
Обратите внимание, что это не добавит ключ в словарь, а это означает, что попытка доступа к его значению в дальнейшем все равно приведет к ошибке ключа .