Форум программистов, компьютерный форум CyberForum.ru

Python: научные вычисления

Войти
Регистрация
Восстановить пароль
 
DivineShout
0 / 0 / 0
Регистрация: 24.04.2016
Сообщений: 30
#1

Калькулятор - Python

03.10.2016, 02:46. Просмотров 582. Ответов 11
Метки нет (Все метки)

Я создал калькулятор на пайтоне, помогите с кодом, я не знаю что и как написать, чтобы при закрытии калькулятора в любой момент сохранялись последние действия и когда мы снова открывали его, то мы начинали вычисления с последнего действия.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.10.2016, 02:46     Калькулятор
Посмотрите здесь:

C++ Builder Калькулятор
Калькулятор C++
PHP Калькулятор
Visual Basic калькулятор
Калькулятор C++
Qt калькулятор C++ Qt
Калькулятор JavaScript
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dondublon
1174 / 861 / 100
Регистрация: 17.03.2012
Сообщений: 5,784
Записей в блоге: 5
03.10.2016, 07:46     Калькулятор #2
Сохранять в файл?

Не по теме:

Предложения заканчиваются точкой.

DivineShout
0 / 0 / 0
Регистрация: 24.04.2016
Сообщений: 30
03.10.2016, 10:01  [ТС]     Калькулятор #3
да, в файл.
dondublon
1174 / 861 / 100
Регистрация: 17.03.2012
Сообщений: 5,784
Записей в блоге: 5
03.10.2016, 10:40     Калькулятор #4
Наверное, в вашем случае лучше всего воспользоваться сериализацией через cPickle.
Если там сложные составные объекты. Если просто текст - то просто пишите в файл, проблем нет.
alex925
2354 / 2020 / 471
Регистрация: 19.03.2012
Сообщений: 7,887
03.10.2016, 10:51     Калькулятор #5
А в чем собственно проблема? Что не получается?
DivineShout
0 / 0 / 0
Регистрация: 24.04.2016
Сообщений: 30
03.10.2016, 16:01  [ТС]     Калькулятор #6
У меня есть код калькулятора, который делает простые вычисление, и я не знаю как сделать чтобы при закрытии калькулятора последние вычисления сохранялись, и когда мы откроем калькулятор то будем начинать с них. Можете пожалуйста кинуть код. Вот код моего калькулятора
from tkinter import *

class Calcul():
def __init__(self):
self.total = 0
self.current = ""
self.new_num = True
self.op_pending = False
self.op = ""
self.eq = False


def num_press(self, num):
self.eq = False
temp = text_box.get()
temp2 = str(num)
if self.new_num:
self.current = temp2
self.new_num = False
else:
if temp2 == '.':
if temp2 in temp:
return
self.current = temp + temp2
self.display(self.current)

def calc_total(self):
self.eq = True
self.current = float(self.current)
if self.op_pending == True:
self.do_sum()
else:
self.total = float(text_box.get())

def display(self, value):
text_box.delete(0, END)
text_box.insert(0, value)

def do_sum(self):
if self.op == "add":
self.total += self.current
if self.op == "minus":
self.total -= self.current
if self.op == "times":
self.total *= self.current
if self.op == "divide":
self.total /= self.current
self.new_num = True
self.op_pending = False
self.display(self.total)

def operation(self, op):
self.current = float(self.current)
if self.op_pending:
self.do_sum()
elif not self.eq:
self.total = self.current
self.new_num = True
self.op_pending = True
self.op = op
self.eq = False

def cancel(self):
self.eq = False
self.current = "0"
self.display(0)
self.new_num = True


def sign(self):
self.eq = False
self.current = -(float(text_box.get()))
self.display(self.current)






sum1 = Calcul()
root = Tk()
calc = Frame(root)
calc.grid()

root.title("Calculator")
text_box = Entry(calc, justify=RIGHT,font="Arial 10")
text_box.grid(row = 0, column = 0, columnspan = 4, pady = 1)
text_box.insert(0, "0")

numbers = "789456123"
i = 0
bttn = []
for j in range(1,4):
for k in range(3):
bttn.append(Button(calc, text = numbers[i],font="Arial 20"))
bttn[i].grid(row = j, column = k)
bttn[i]["command"] = lambda x = numbers[i]: sum1.num_press(x)
i += 1

bttn_0 = Button(calc, text = "0",font="Arial 20")
bttn_0["command"] = lambda: sum1.num_press(0)
bttn_0.grid(row = 4, column = 1)

bttn_div = Button(calc, text = chr(247),font="Arial 20")
bttn_div["command"] = lambda: sum1.operation("divide")
bttn_div.grid(row = 1, column = 3)

bttn_mult = Button(calc, text = "x",font="Arial 21")
bttn_mult["command"] = lambda: sum1.operation("times")
bttn_mult.grid(row = 2, column = 3)

minus = Button(calc, text = "-",font="Arial 22")
minus["command"] = lambda: sum1.operation("minus")
minus.grid(row = 4, column = 0)

point = Button(calc, text = ". ",font="Arial 20")
point["command"] = lambda: sum1.num_press(".")
point.grid(row = 4, column = 3)

add = Button(calc, text = "+",font="Arial 20")
add["command"] = lambda: sum1.operation("add")
add.grid(row = 3, column = 3)

neg= Button(calc, text = "+/-",font="Arial 14")
neg["command"] = sum1.sign
neg.grid(row = 5, column = 0)

clear = Button(calc, text = "C",font="Arial 19")
clear["command"] = sum1.cancel
clear.grid(row = 5, column = 2)

equals = Button(calc, text = "=",font="Arial 20")
equals["command"] = sum1.calc_total
equals.grid(row = 4, column = 2)
alex925
2354 / 2020 / 471
Регистрация: 19.03.2012
Сообщений: 7,887
03.10.2016, 17:00     Калькулятор #7
DivineShout, твой не отформатированный код никто даже смотреть не будет

И не получается это не объяснение, что конкретно не получается?
DivineShout
0 / 0 / 0
Регистрация: 24.04.2016
Сообщений: 30
04.10.2016, 00:40  [ТС]     Калькулятор #8
я не знаю как сделать чтобы при закрытии калькулятора последние вычисления сохранялись, и когда мы откроем калькулятор то будем начинать с них. Вот чего я не знаю, я не понимаю как это сделать.
dondublon
1174 / 861 / 100
Регистрация: 17.03.2012
Сообщений: 5,784
Записей в блоге: 5
04.10.2016, 07:37     Калькулятор #9
Цитата Сообщение от DivineShout Посмотреть сообщение
я не знаю как сделать чтобы при закрытии калькулятора последние вычисления сохранялись, и когда мы откроем калькулятор то будем начинать с них. Вот чего я не знаю, я не понимаю как это сделать.

Не по теме:

На колу мочала, начинай сначала.


Сохранять в файл?
DivineShout
0 / 0 / 0
Регистрация: 24.04.2016
Сообщений: 30
05.10.2016, 09:08  [ТС]     Калькулятор #10
да.
dondublon
1174 / 861 / 100
Регистрация: 17.03.2012
Сообщений: 5,784
Записей в блоге: 5
05.10.2016, 10:39     Калькулятор #11
DivineShout, значит, следующий твой вопрос должен быть - "как в Питоне сохранять в файл?".
И обращать его лучше в гугль, потому что вопрос очень простой и типовой.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.10.2016, 21:10     Калькулятор
Еще ссылки по теме:

калькулятор C++
Простой калькулятор и калькулятор с парсингом C++
JavaScript Калькулятор
Калькулятор JavaFX
Калькулятор Java

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Tehnic
11 / 11 / 3
Регистрация: 17.06.2016
Сообщений: 70
25.10.2016, 21:10     Калькулятор #12
Последнее выражение допустим в файл сохраняй.
при открытии сразу-(пока не ввел данных пусть будут данние из файла.)
Yandex
Объявления
25.10.2016, 21:10     Калькулятор
Ответ Создать тему
Опции темы

Текущее время: 18:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru