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

killer.bean

Новичок
Пользователь
Ноя 24, 2021
1
0
1
Начав изучать питон, попробовал написать бота для телеги. Заработал только эхо бот. Пишу дальше. Помогите, что не так?
Вот сам код:

Python:
import pyowm
import telebot

from pyowm import OWM
from pyowm.utils import config
from pyowm.utils import timestamps

bot = telebot.TeleBot("2108906770:AAF3Va4YQEguBzqrT48-ZlqH8aCYk7AsWVE", parse_mode=None)

owm = OWM('060639194331733e7cb8429869[/ICODE]2091fc')
#mgr = owm.weather_manager()

content_types=["text"]
@bot.message_handler(content_types=['text'])
def send_echo(message):

    observation = mgr.weather_at_place( message.text )
    w = observation.weather
    tp = w.get_temperature('celsius')["temp"]
    weather = w.get_detailed_status

answ = 'Сейчас в городе ' + message.text + ' ' + weather + ', \n' + str(tp) + ' градусов.\n'
answ += '\n . '

if tp < 0:
    answ += 'Тут прохладно.'
elif tp < -10:
    answ += 'Здесь очень холодно!'
else:
    answ += 'Температура вроде норм, делай что хочешь.'

    #bot.reply_to(message, message.text)
    bot.send_message(message.chat.id, message.text)

bot.infinity_polling()

-----------------------------

должно работать примерно как на скрине из телеги
 

Вложения

  • Скриншот 24.11.21_22.21.24.png
    Скриншот 24.11.21_22.21.24.png
    116,1 КБ · Просмотры: 2
  • Скриншот 24.11.21_22.24.30.png
    Скриншот 24.11.21_22.24.30.png
    36,3 КБ · Просмотры: 2
Последнее редактирование:

Paskudovets

Новичок
Пользователь
Ноя 24, 2021
7
0
3
У тебя проверка вне функции, соблюдай табуляцию
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 672
478
83
код вставляйте как код, соблюдая отступы, подробнее тут как задать вопрос
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 672
478
83
Начав изучать питон, попробовал написать бота для телеги. Заработал только эхо бот. Пишу дальше. Помогите, что не так?
Вот сам код:

Python:
import pyowm
import telebot

from pyowm import OWM
from pyowm.utils import config
from pyowm.utils import timestamps

bot = telebot.TeleBot("2108906770:AAF3Va4YQEguBzqrT48-ZlqH8aCYk7AsWVE", parse_mode=None)

owm = OWM('060639194331733e7cb8429869[/ICODE]2091fc')
#mgr = owm.weather_manager()

content_types=["text"]
@bot.message_handler(content_types=['text'])
def send_echo(message):

    observation = mgr.weather_at_place( message.text )
    w = observation.weather
    tp = w.get_temperature('celsius')["temp"]
    weather = w.get_detailed_status

answ = 'Сейчас в городе ' + message.text + ' ' + weather + ', \n' + str(tp) + ' градусов.\n'
answ += '\n . '

if tp < 0:
    answ += 'Тут прохладно.'
elif tp < -10:
    answ += 'Здесь очень холодно!'
else:
    answ += 'Температура вроде норм, делай что хочешь.'

    #bot.reply_to(message, message.text)
    bot.send_message(message.chat.id, message.text)

bot.infinity_polling()

-----------------------------

должно работать примерно как на скрине из телеги
вам нужно сделать if внутри функции...
Python:
...

def send_echo(message):

    observation = mgr.weather_at_place( message.text )
    w = observation.weather
    tp = w.get_temperature('celsius')["temp"]
    weather = w.get_detailed_status

    answ = 'Сейчас в городе ' + message.text + ' ' + weather + ', \n' + str(tp) + ' градусов.\n'
    answ += '\n . '

    if tp < 0:
        answ += 'Тут прохладно.'
    elif tp < -10:
        answ += 'Здесь очень холодно!'
    else:
        answ += 'Температура вроде норм, делай что хочешь.'

    #bot.reply_to(message, message.text)
    bot.send_message(message.chat.id, message.text)
    
...
 

Форум IT Специалистов