Как поместить передаваемое пользователем значение в переменную, а потом ее использовать в другой функции
Как передать значение в следующую функцию в данном случае?
@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 шт):
Уточните пожалуйста, значений какой переменной из какой функции в какую нужно передать? А так, для таких целей можно использовать два метода: 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
Пример:
def first():
global A
A = input()
def second():
print(A)
first()
second()
Возможно попробуйте этот вариант. Я так и не понял что конкретно вам требуется, что за тарифная ставка, какие 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)