Top.Mail.Ru
Ответы

Ошибка в боте. переменная не определена. хотя определена

выдает ошибку:


import telegram from telegram.ext import CommandHandler, Updater from telegram import InlineKeyboardButton, InlineKeyboardMarkup import requests def start(update, context): update.message.reply_text('Привет! Я бот для получения информации о погоде. Напишите /weather, чтобы узнать погоду в вашем городе.') def weather(update, context): city = 'Mersin' api_key = '-------------------------------------------------' url = f'http://api.openweathermap.org/data/2.5/weather?q={city}&appid={api_key}&units=metric' response = requests.get(url) data = response.json() temp = data['main']['temp'] weather_description = data['weather'][0]['description'] message = f'Current temperature in {city}: {temp}°C\nWeather: {weather_description}' keyboard = [[InlineKeyboardButton("Weather", callback_data='weather')]] reply_markup = InlineKeyboardMarkup(keyboard) update.message.reply_text(message, reply_markup=reply_markup) if __name__ == '__main__': bot_token = '__________________________________' updater = Updater(bot_token, use_context=True) dispatcher = updater.dispatcher dispatcher.add_handler(CommandHandler('start', start)) dispatcher.add_handler(CommandHandler('weather', weather)) updater.start_polling()

По дате
По рейтингу
Аватар пользователя
Новичок

Ошибка происходит на строке 41. Ты показываешь файл только до 33 строки.
P.s. для вставки кода есть специальный блок. https://help.mail.ru/otvety-help/answers/text_decoration

Аватар пользователя
Просветленный

Похоже, что ошибка возникает из-за того, что вы пытаетесь использовать переменную updater в строке 41, но ее определение отсутствует в этом участке кода. Возможно, вы случайно удалили или переместили эту строку в коде.

Чтобы решить эту проблему, добавьте следующую строку перед строкой 41:

12
 updater = Updater(bot_token, use_context=True) 
 

Также убедитесь, что вы определили переменную bot_token ранее в коде, так как эта переменная используется при создании объекта Updater.

Аватар пользователя
Мыслитель

сделай одну строчку убери свой перенос