Как поместить передаваемое пользователем значение в переменную, а потом ее использовать в другой функции

Как передать значение в следующую функцию в данном случае?

@bot.callback_query_handler(func=lambda call: call.data == "gruzchik")
def replenish_balans(call: types.CallbackQuery):
    bot.send_message(call.message.chat.id, "Какое колличество грузчиков Вам необходимо?")
    bot.register_next_step_handler(call.message, take_money)


def take_money(message: types.Message):
    if message.text.isdigit():
        markup = types.InlineKeyboardMarkup(row_width=1).add(
            types.InlineKeyboardButton(text="Перевод на карту", callback_data="karta"))
        bot.send_message(message.chat.id, f"Для пополнения счета на {message.text} выберите способ оплаты", reply_markup=markup)
    else:
        bot.send_message(message.chat.id, "Некоректный ввод\nВведите колличество цифрами")
        bot.register_next_step_handler(message, take_money)


@bot.callback_query_handler(func=lambda call: call.data == "karta")
def choise_service(call: types.CallbackQuery):
    markup = types.InlineKeyboardMarkup(row_width=1).add(
       types.InlineKeyboardButton(text="Я оплатил", callback_data="2.2"))
    bot.edit_message_text(chat_id=call.message.chat.id,
                          message_id=call.message.message_id,
                          text=для заказа "**Сюда нужно значение которое ввел пользователь**",
                          reply_markup=markup)

Ответы (2 шт):

Автор решения: Dima

Уточните пожалуйста, значений какой переменной из какой функции в какую нужно передать? А так, для таких целей можно использовать два метода: return variable и назначение какой-то переменной глобальной. Вариант с return:

a = int(input(f'Введите число, которое желаете возвести в квадрат: '))
def square(num):
    num = num**2
    return num
print(f'Квадратом числа {a} является - {square(a)}')

Вариант с глобальной переменной, который скорее всего вам подойдет больше чем с return:

a = int(input(f'Введите число, которое желаете возвести в квадрат: '))
def square():
    global num
    num = a**2
    
square()
print(f'Квадратом числа {a} является - {num}')

Если предположим вам требуется передать значение переменной "A", которой присваивается значение в функции №1 в функцию №2, то можно:

  1. Объявить ее глобальной в переменной №1
  2. "Запустить" функцию №1
  3. Использовать в ф-ии №2

Пример:

def first():
global A
A = input()

def second():
print(A)

first()
second()
→ Ссылка
Автор решения: Dima

Возможно попробуйте этот вариант. Я так и не понял что конкретно вам требуется, что за тарифная ставка, какие 600 руб час за грузчика, и в целом о чем это, но я сделал так, чтобы та сумма, которую пользователь выбирает, которую вы еще проверяете на численность, присваивалась глобальной переменной summ и в дальнейшем поднималась в функции choise_service в месте, где вы написали комментарий "Сюда нужно значение которое ввел пользователь"

@bot.callback_query_handler(func=lambda call: call.data == "gruzchik")
def replenish_balans(call: types.CallbackQuery):
    bot.send_message(call.message.chat.id, "Какое количество грузчиков Вам необходимо?")
    bot.register_next_step_handler(call.message, take_money)


def take_money(message: types.Message):
    if message.text.isdigit():
        global summ
        summ = message.text
        markup = types.InlineKeyboardMarkup(row_width=1).add(
            types.InlineKeyboardButton(text="Перевод на карту", callback_data="karta"))
        bot.send_message(message.chat.id, f"Для пополнения счета на {message.text} выберите способ оплаты", reply_markup=markup)
    else:
        bot.send_message(message.chat.id, "Некорректный ввод\nВведите количество цифрами")
        bot.register_next_step_handler(message, take_money)


@bot.callback_query_handler(func=lambda call: call.data == "karta")
def choise_service(call: types.CallbackQuery):
    markup = types.InlineKeyboardMarkup(row_width=1).add(
       types.InlineKeyboardButton(text="Я оплатил", callback_data="2.2"))
    bot.edit_message_text(chat_id=call.message.chat.id,
                          message_id=call.message.message_id,
                          text=summ,
                          reply_markup=markup)
→ Ссылка