• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

Прошу помощи в написании телеграм бота на python

A

ashani_arkadi

Начиная с переменных
name = '';
surname = '';
age = 0;
код дальше не работает, то есть бот отвечает на привет, пока, старт и тд
но вот на /reg молчит и ничего не спрашивает. поскажите где ошибка пожалуйста. заранее спасибо


Код:
# *- Coding UTF-8 -*

import telebot

from telebot import types

bot = telebot.TeleBot(>>>>>>>>>>>)


@bot.message_handler(commands=['start'])
def start_message(message):
    bot.send_message(message.from_user.id, 'Привет, ты написал мне /start')


@bot.message_handler(content_types=['text'])
def send_text(message):
    if message.text.lower() == 'привет':
        bot.send_message(message.from_user.id, 'Ну, привет')
    elif message.text.lower() == 'пока':
        bot.send_message(message.from_user.id, 'Пока, друг!')


name = '';
surname = '';
age = 0;


@bot.message_handler(content_types=['text'])
def start(message):
    if message.text.lower() == '/reg':
        bot.send_message(message.from_user.id, 'Как тебя зовут?');
        bot.register_next_step_handler(message, get_name);

    else:
        bot.send_message(message.from_user.id, 'Напиши /reg');


def get_name(message):
    global name;
    name = message.text;
    bot.send_message(message.from_user.id, 'Как у тебя фамилия?')
    bot.register_next_step_handler(message, get_surname);


def get_surname(message):
    global surname;
    surname = message.text;
    bot.send_message('Сколько тебе лет?')
    bot.register_next_step_handler(message, get_age);


def get_age(message):
    global age;
    while age == 0:
        try:
            age = int(message.text)
        except Exception:
            bot.send_message(message.from_user.id, 'Цифрами пожалуйста');

    bot.send_message(message.from_user.id, 'Тебе ' + str(age) + ' лет, тебя зовут ' + name + ' ' + surname + '?')


bot.polling(none_stop=True, interval=0)
 

Your 2B wify

Green Team
01.06.2018
96
21
BIT
0
нельзя разбивать @bot.message_handler(content_types=['text'])
Python:
import telebot

from telebot import types

bot = telebot.TeleBot(>>>>>>>>>>>)

name = '';
surname = '';
age = 0;


@bot.message_handler(commands=['start'])
def start_message(message):
    bot.send_message(message.from_user.id, 'Привет, ты написал мне /start')


@bot.message_handler(content_types=['text'])
def send_text(message):
    if message.text.lower() == 'привет':
        bot.send_message(message.from_user.id, 'Ну, привет')
    elif message.text.lower() == 'пока':
        bot.send_message(message.from_user.id, 'Пока, друг!')

    elif message.text.lower() == '/reg':
        bot.send_message(message.from_user.id, 'Как тебя зовут?');
        bot.register_next_step_handler(message, get_name);

    else:
        bot.send_message(message.from_user.id, 'Напиши /reg');


def get_name(message):
    global name;
    name = message.text;
    bot.send_message(message.from_user.id, 'Как у тебя фамилия?')
    bot.register_next_step_handler(message, get_surname);


def get_surname(message):
    global surname;
    surname = message.text;
    bot.send_message('Сколько тебе лет?')
    bot.register_next_step_handler(message, get_age);


def get_age(message):
    global age;
    while age == 0:
        try:
            age = int(message.text)
        except Exception:
            bot.send_message(message.from_user.id, 'Цифрами пожалуйста');

    bot.send_message(message.from_user.id, 'Тебе ' + str(age) + ' лет, тебя зовут ' + name + ' ' + surname + '?')


bot.polling(none_stop=True, interval=0)
+ есть вопросы к твоим глобальным переменым
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!