Цель проекта: создать универсальный калькулятора для себя и моих однокурсников на финансовом направлении.
Реализация: пайтон последней версии, telegrambotapi последней версии.
Моя задумка реализации: всунуть уже мною написанный под пк(на консоли только работает), уже имеющийся скрипт - алгоритм вычисления сложной процентой ставки раз в n промежуток времени, под среду телеграмботапи.
Проблема: В чем она, я тольком не пойму - но как понимаю исходя из скудности гугл инфы о калькуляторах на телеграмботапи, телеграм и алгебраические вычисления не сильно дружат.
Скрипт калькулятора на консоли:
K = int(input('Введите первоначальную сумму K: ')) #первоначальная сумма n = int(input('Введите число лет n: ')) #число лет klow = int(input('Число начислений в год ( Год(12), полгода(6) ) k: ')) #квартал пока нету, год и полгода в месяцах r = int(input('Введите сложную годовую процентную ставку r: ')) Knk = int running = True #print('K_n*klow = ' + str(K*(1+r/100*klow)**n*klow)) a = float(1+(r/(100*klow))) w = float(n*klow) c = float(a**w) print("-----> K"+str(w)+" = " + str(K * c))
Скрипт бота:
import telebot bot = telebot.TeleBot('понятное дело что тут придется скрыть)') #keyboard1 = telebot.types.ReplyKeyboardMarkup(True, True) #keyboard1.row('Зум-айди', '/eko') K = int n = int klow = int r = int Knk = int #сверху мы видим собственно переменные которые я создал как в калькуляторе. @bot.message_handler(commands=['start']) def send_welcome(message): bot.send_message(message.chat.id, 'Для начала работы со мной, введи \n/start !!!') bot.send_message(message, "Я - бот курса 111063.\n/mat\n/eko\n/fil\n/his\n/inf\n/eng") #reply_markup=keyboard1 bot.send_message(message.chat.id, 'Калькулятор сложных процентов - /knk') @bot.message_handler(commands=['mat', 'eko', 'fil', 'his', 'inf', 'eng']) def zoomid(message): #дефолт message, uroki - то что в принципе и должно отвечать за заданного в переменной uroki = ['mat', 'eko', 'fil', 'his', 'inf', 'eng'] mat = 7490563693 eko = 9433130879 fil = 8821266565 his = 4792894841 inf = 3273128376 eng = 3377977051 if message.text == '/mat': bot.send_message(message.chat.id, 'Zoom ID старого ублюдка:' + str(mat)) elif message.text == '/eko': bot.send_message(message.chat.id, 'Zoom ID безмикрофонного:' + str(eko)) elif message.text == '/fil': bot.send_message(message.chat.id, 'Zoom ID:' + str(fil)) elif message.text == '/his': bot.send_message(message.chat.id, 'Zoom ID:' + str(his)) elif message.text == '/inf': bot.send_message(message.chat.id, 'Zoom ID:' + str(inf)) elif message.text == '/eng': bot.send_message(message.chat.id, 'Zoom ID:' + str(eng)) #снизу идет уже чисто моя логика, сверху же писалось под исходники #ВВОД ДАННЫХ К Н КЛОУ Р #ОПЕРАЦИЯ #РЕЗУЛЬТ @bot.message_handler(commands=['rez'])#попытка создать команду показывающую результат def calik(message): K = int n = int klow = int r = int Knk = int #print('Knk = ' + str(K*(1+r/100*klow)**n*klow)) #просто прототип вычисления a = float(1+(r/(100*klow))) w = float(n*klow) c = float(a**w) print("-----> K"+str(w)+" = " + str(K * c)) #это тут просто так висит prin = 'K' + eval(str(w)+ '=' + str(K* c)) #тут по сути должен выводиться ответ таким способом #user_result = eval(str(user_num1) + user_proc + str(user_num2)) #копировал с другого кода для прототипа return prin @bot.message_handler(commands=['calc'])#Это попытка создать нечто типа K = int(input()) def k_n_klow_r(message): K = int(str(message.text)) n = int(str(message.text)) klow = int(str(message.text)) r = int(str(message.text)) Knk = int(str(message.text)) calik() #попытка, дабы функция калик вызывалась уже на этом моменте и не приходилось псиать отдельно команду результата bot.polling()
Прикрепляю код бота чтобы в случае чего было легче разобарться
Пожалуйста, кто сможет, дайте совет - я давно преследую эту цель, а цель явно не хочет в руки лезть. Либо же, если тут ничего невозможно сделать , то как мне осуществить этот гребанный калькулятор на андроиде - я уже все нервы сломал(((