@Slanty

Как исправить ошибку?

Пишу бота в телеграмм вот пример над чем сейчас работаю:
Человек пишет какое-то число, его сообщение записывается в переменную (amont)
Дальше пользователю надо угадать цвет (красный или зелёный), если он угадывает, его amont должна умножиться на 2

Столкнулся с проблемой: переменная amont - строка, когда пользователь угадывает, его amount пишется второй раз, пример:
Когда юзер ввел число amont - 4, когда пользователь угадал, его amont - 44
Пробовал добавлять int, но появляется ошибка:

TypeError: can only concatenate str (not “int”) to str
  • Вопрос задан
  • 112 просмотров
Пригласить эксперта
Ответы на вопрос 2
Bedrosova
@Bedrosova
Приму стажера в команду (web, backend)
amount="2.5"
amount2=0
try:
    amount2=float(amount)*2
except:
    print("Ошибка преобразования типов")
print(amount2)
Ответ написан
@Kapustlo
У вас проблема в том, что вы забываете поменять тип переменной и вы умножаете на 2 строку "4", а не число 4 и выходит, что строка повторяется два раза, становясь "44" (кстати иногда очень крутая штука, позволяет решать лаконично определённые задачи без использования циклов)
amont = "4" # Допустим, это мы получили из API

if condition:
    amont = float(amont) * 2

# А дальше, если вам нужно работать с "amont" как со строкой, то просто сделайте str(amont)


Ну, а если вы уверены, что число у вас всегда будет целочисленное, то вы можете, как написал Ivan Yakushenko сделать так:

amont = int(amont)

Но учтите, что если будет передано дробное число, то выдастся ошибка. Также учитывайте, что дробная часть должна обязательно разделяться ".", чтобы float() смогла преобразовать строку в дробное число, иначе снова выдастся ошибка.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
19 авг. 2019, в 14:48
300 руб./за проект
19 авг. 2019, в 14:39
1800 руб./в час
19 авг. 2019, в 14:24
30000 руб./за проект