Выдает лишние данные в функции

Korda

Новичок
Пользователь
Сен 13, 2022
16
0
1
Функция пишет человеку определенные сообщения(она большая, более 90 если). Мне нужно сделал так, если ничто из этой функции не подходит, бот писал "Код регион введен неправильно, попробуйте еще раз!", но написав его в коде, он вылезает на каждом если, как исправить?
Python:
def ADIGEIfinall(message):
    if message.text == '1':
        bot.send_message(message.chat.id, "<b>Республика Адыгея:</b>", parse_mode="html")
        bot.send_message(message.chat.id, ADIGEI)
        bot.send_message(message.chat.id, ADIGEI1)
        bot.send_message(message.chat.id, ADIGEI2)
        bot.send_message(message.chat.id, ADIGEI4)
        bot.send_message(message.chat.id, "<b>___________________________________</b>", parse_mode="html")
        bot.send_message(message.chat.id, (random.choice(IVLIN)))
        bot.send_message(message.chat.id, (random.choice(POKA)))
    if message.text == '2':
        bot.send_message(message.chat.id, "<b>Республика Башкортостан:</b>", parse_mode="html")
        bot.send_message(message.chat.id, ABASHKO1)
        bot.send_message(message.chat.id, ABASHK02)
        bot.send_message(message.chat.id, ABASHK03)
        bot.send_message(message.chat.id, ABASHK04)
        bot.send_message(message.chat.id, "<b>___________________________________</b>", parse_mode="html")
        bot.send_message(message.chat.id, (random.choice(IVLIN)))
        bot.send_message(message.chat.id, (random.choice(POKA)))


Python:
    if message.text == "92":
        bot.send_message(message.chat.id, "<b>Город Севастополь:</b>", parse_mode="html")
        bot.send_message(message.chat.id, SEVOC1)
        bot.send_message(message.chat.id, SEVOC2)
        bot.send_message(message.chat.id, SEVOC3)
        bot.send_message(message.chat.id, SEVOC4)
        bot.send_message(message.chat.id, "<b>___________________________________</b>", parse_mode="html")
        bot.send_message(message.chat.id, (random.choice(IVLIN)))
        bot.send_message(message.chat.id, (random.choice(POKA)))
    else:
        bot.send_message(message.chat.id, "<b>Код регион введен неправильно, попробуйте еще раз!</b>", parse_mode="html")





Вот как выглядит в итоге(if 1):
лалалалалалаллала
Код регион введен неправильно, попробуйте еще раз!
Вот как выглядит в итоге(if 2):
питон 1234567
Код регион введен неправильно, попробуйте еще раз!
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 586
459
83
в том коде, который вы привели, такого быть не должно...
пройдитесь дебагером, посмотрите откуда он берет Код регион введен неправильно, попробуйте еще раз!
ну и эту кучу ифов можно заменить наверное на один иф, если сделать словарь...
 

Ципихович Эндрю

Активный пользователь
Пользователь
Мар 27, 2021
490
25
28
над строкой
if message.text == '1':
поместите проверку типа, вроде так:
Код:
print(message.text.type)
что говорит?
 

Korda

Новичок
Пользователь
Сен 13, 2022
16
0
1
над строкой
if message.text == '1':
поместите проверку типа, вроде так:
Код:
print(message.text.type)
что говорит?
Не выдает Код регион введен неправильно, попробуйте еще раз!
 

Ципихович Эндрю

Активный пользователь
Пользователь
Мар 27, 2021
490
25
28
print(message.text.type)
что говорит?
ответ не понятен............
спрошу по другому
print(message.text.type)
что пишет, какой тип?
 

Korda

Новичок
Пользователь
Сен 13, 2022
16
0
1
print(message.text.type)
что говорит?
ответ не понятен............
спрошу по другому
print(message.text.type)
что пишет, какой тип?
1664269895569.png
 

Ципихович Эндрю

Активный пользователь
Пользователь
Мар 27, 2021
490
25
28
поместите проверку типа, вроде так:

ошибся так как с смартфона писал, так нужно
print(type(message.text)) # => тип переменной
 

Korda

Новичок
Пользователь
Сен 13, 2022
16
0
1
ошибся так как с смартфона писал, так нужно
print(type(message.text)) # => тип переменной
Ничего не пишет(
 

Ципихович Эндрю

Активный пользователь
Пользователь
Мар 27, 2021
490
25
28
тогда выложите весь код-который вы пробуете
 

Korda

Новичок
Пользователь
Сен 13, 2022
16
0
1
API-KEY скрыл

Python:
import requests
import telebot
import random
from telebot import types
from bs4 import BeautifulSoup as b

URL = 'https://weather.rambler.ru/v-adygeyske/?updated'

Python:
ADIGEI2 = parserADIGEI_WIND(URL)
ADIGEI1 = parserADIGEI_TEMPUR(URL)
ADIGEI = pareserADIGEI_STATUS(URL)
ADIGEI4 = parserADIGEI_DATA(URL)


URLBASHKOR3 = 'https://weather.rambler.ru/v-ufe/'

def pareserABASHKOR_STATUS(URLBASHKOR3):
    r = requests.get(URLBASHKOR3)
    soup = b(r.text, 'html.parser')
    ABASHKOR_STATUS = soup.find_all('div', class_ ="TWnE")
    return [c.text for c in ABASHKOR_STATUS]

def parserABASHKOR_TEMP(URLBASHKOR3):
    r = requests.get(URLBASHKOR3)
    soup = b(r.text, 'html.parser')
    ABASHKOR_TEMP = soup.find_all('div', class_= "HhSR MBvM")
    return f"Температура составляет {[c.text for c in ABASHKOR_TEMP][0]}C"

def parserABASHKOR_WIND(URLBASHKOR3):
    r = requests.get(URLBASHKOR3)
    soup = b(r.text, 'html.parser')
    ABASHKOR_WIND = soup.find_all('span', class_ ="VaOz PB4k")
    return [c.text for c in ABASHKOR_WIND]

def parserABASHKOR_DATA(URLBASHKOR3):
    r = requests.get(URLBASHKOR3)
    soup = b(r.text, 'html.parser')
    ABASHKOR_DATA = soup.find_all('div', class_ = "w4bT")
    return  f"Дата: {[c.text for c in ABASHKOR_DATA][0]}"

ABASHKO1 = pareserABASHKOR_STATUS(URLBASHKOR3)
ABASHK02 = parserABASHKOR_TEMP(URLBASHKOR3)
ABASHK03 = parserABASHKOR_WIND(URLBASHKOR3)
ABASHK04 = parserABASHKOR_DATA(URLBASHKOR3)



Код:
def PRIVETCTVI(message):
    bot.send_message(message.chat.id, '<b>блаблалабалаббалба</b>', parse_mode="html")

@bot.message_handler(content_types=['text'])
def ADIGEIfinall(message):
    bot.send_message(message.chat.id, print(type(message.text)))
    if message.text == '1':
        bot.send_message(message.chat.id, "<b>Республика Адыгея:</b>", parse_mode="html")
        bot.send_message(message.chat.id, ADIGEI)
        bot.send_message(message.chat.id, ADIGEI1)
        bot.send_message(message.chat.id, ADIGEI2)
        bot.send_message(message.chat.id, ADIGEI4)
        bot.send_message(message.chat.id, "<b>___________________________________</b>", parse_mode="html")
        bot.send_message(message.chat.id, (random.choice(IVLIN)))
        bot.send_message(message.chat.id, (random.choice(POKA)))
    if message.text == '2':
        bot.send_message(message.chat.id, "<b>Республика Башкортостан:</b>", parse_mode="html")
        bot.send_message(message.chat.id, ABASHKO1)
        bot.send_message(message.chat.id, ABASHK02)
        bot.send_message(message.chat.id, ABASHK03)
        bot.send_message(message.chat.id, ABASHK04)
        bot.send_message(message.chat.id, "<b>___________________________________</b>", parse_mode="html")
        bot.send_message(message.chat.id, (random.choice(IVLIN)))
        bot.send_message(message.chat.id, (random.choice(POKA)))
        
bot.polling()
 

Korda

Новичок
Пользователь
Сен 13, 2022
16
0
1
Python:
def pareserADIGEI_STATUS(url):
    r = requests.get(URL)
    soup = b(r.text, 'html.parser')
    Adigei_STATUS = soup.find_all('div', class_ ="TWnE")
    return [c.text for c in Adigei_STATUS]

def parserADIGEI_TEMPUR(url):
    r = requests.get(URL)
    soup = b(r.text, 'html.parser')
    Adigei_TEMPUR = soup.find_all('div', class_ ="HhSR MBvM")
    return  f"Температура составляет {[c.text for c in Adigei_TEMPUR][0]}C"

def parserADIGEI_WIND(url):
    r = requests.get(URL)
    soup = b(r.text, 'html.parser')
    Adigei_WIND = soup.find_all('span', class_= "VaOz PB4k")
    return [c.text for c in Adigei_WIND]

def parserADIGEI_DATA(url):
    r = requests.get(url)
    soup = b(r.text, 'html.parser')
    ADIGEI_DATA = soup.find_all('div', class_ = "w4bT")
    return  f"Дата: {[c.text for c in ADIGEI_DATA][0]}"

ADIGEI2 = parserADIGEI_WIND(URL)
ADIGEI1 = parserADIGEI_TEMPUR(URL)
ADIGEI = pareserADIGEI_STATUS(URL)
ADIGEI4 = parserADIGEI_DATA(URL)
 

Ципихович Эндрю

Активный пользователь
Пользователь
Мар 27, 2021
490
25
28
не так:
bot.send_message(message.chat.id, print(type(message.text)))
что сие означает вам лучше знать)) то, что я говорил - так:
print(type(message.text))
чтобы узнать тип и понимать корректно ли дальнейшее сравнение
if message.text == '1':
понятно?
 

Korda

Новичок
Пользователь
Сен 13, 2022
16
0
1
не так:
bot.send_message(message.chat.id, print(type(message.text)))
что сие означает вам лучше знать)) то, что я говорил - так:
print(type(message.text))
чтобы узнать тип и понимать корректно ли дальнейшее сравнение
if message.text == '1':
понятно?
Только он не выдаст ответа, т.к он работает через тг.
 

Ципихович Эндрю

Активный пользователь
Пользователь
Мар 27, 2021
490
25
28
ну тогда дебаггером идти по коду..........и смотреть что да как.....
 

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