Исправить код телеграмм бота, который говорит погоду
from pyowm import OWM
from pyowm.utils
import config
from pyowm.utils import timestamps
from translate import Translator
translator=Translator(from_lang='en',to_lang='ru')
import telebot
owm= OWM('4d96bb7f8f95caf8798fb523f6508ff3')
bot = telebot.TeleBot("1692473278:AAF3bm5fqgCF1tIFNJ7r24mcDL4AlT4k8kE")
@bot.message_handler(content_types=['text'])
@bot.message_handler(func=lambda message: True)
def send_echo(message):
mgr = owm.weather_manager()
observation = mgr.weather_at_place(message.text)
w = observation.weather
temp = w.temperature('celsius')['temp']
sky = translator.translate(w.detailed_status)
answer = 'В городе', message.text, 'сейчас', sky, answer += 'Температура сейчас примерно:', temp, 'Цельсия'
if temp < 10:
answer += 'Сейчас очень холодно,одевайся по теплей'
elif temp < 20:
answer += "Сейчас холодно одевайся теплей"
else:
answer += 'Температура нормальная одевай что угодно'
bot.send_message(message.chat.id,answer)
bot.polling()
Выдает ошибку:
can only concatenate tuple (not "str") to tuple
Ответы (1 шт):
Автор решения: Vadim.Sharoikin
→ Ссылка
используйте f-строки для формирования ответа.
answer = f'В городе , {message.text}, сейчас, {sky}.Температура сейчас примерно: {temp} Цельсия'
а ошибка вам говорит о том что нельзя соединять переменные разных типов.