Задать вопрос
@AdvoKappa

Почему бот считает что большее значение является меньшим?

Код:
@bot.command()
async def Купить(message):

    with open('coins.json', 'r') as f:
        users = json.load(f)

    with open('coins.json','w') as f:
        json.dump(users, f)

    await update_data(users, message.author)
    await add_coins(users, message.author, 50000)
    await coinss(message, users, message.author)

async def update_data(users, user):
    if not str(user.id) in users:
        users[str(user.id)] = {}
        users[str(user.id)]['coins'] = 0
        users[str(user.id)]['coinss'] = 0

async def add_coins(users, user, coin):
    users[str(user.id)]['coins'] += coin

async def coinss(message, users, user):
    users[str(user.id)]['coinss'] += 15000

    coins = users[str(user.id)]['coins']
    coinss = users[str(user.id)]['coinss']
    if 'coins' > 'coinss':
        await message.channel.send('Да')
    else:
        await message.channel.send('Нет')


Значения в JSON файле:
{"293396418834464768": {"coins": 50000, "coinss": 15000}}


Выдаёт ответ 'Нет', хотя первое значение больше второго, как такое исправить? Почему бот считает что большее значение меньше?
  • Вопрос задан
  • 87 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 2
fox_12
@fox_12 Куратор тега Python
Расставляю биты, управляю заряженными частицами
Потому что вы сравниваете две строки, а не числа:
'coins' > 'coinss'

>>> 'coins' > 'coinss'
False
Ответ написан
shurshur
@shurshur
Сисадмин, просто сисадмин...
if 'coins' > 'coinss':

Это сравнение строки 'coins' со строкой 'coinss'. Результат всегда одинаковый.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы