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

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

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

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

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

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

Калькулятор - Python
Ограничение по времени работы программы: 4 секунды Исполнитель «Калькулятор» может с заданным числом X выполнить одну из трех операций и...

Калькулятор - Python
Есть вот такая программа калькулятора: from tkinter import * from tkinter import ttk root = Tk() root.title("калькулятор...

Калькулятор - Python
Пишу калькулятор, позволяющий производить действия в различных системах счисления. Но непонятны 2 вещи: 1) как проверить при вводе числа в...

Калькулятор последовательностей - Python
Приветствую) Помогите, пожалуйста, с заданием: Напишите приложение, считывающее из файла последовательность чисел и выводящее их...

Калькулятор на Python-е - Python
Помогите пожалуйста с написанием калькулятора на Python. "Python"-тема курсовой, а в ней нужно написать калькулятор с интерфейсом и ...

Калькулятор в Python - Python
Люди добрые, у меня не получается сделать следующее задание: Реализовать на языке Python программу-калькулятор реализующую вычисление...

11
dondublon
1232 / 923 / 106
Регистрация: 17.03.2012
Сообщений: 6,194
Записей в блоге: 5
03.10.2016, 07:46 #2
Сохранять в файл?

Не по теме:

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

0
DivineShout
0 / 0 / 0
Регистрация: 24.04.2016
Сообщений: 30
03.10.2016, 10:01  [ТС] #3
да, в файл.
0
dondublon
1232 / 923 / 106
Регистрация: 17.03.2012
Сообщений: 6,194
Записей в блоге: 5
03.10.2016, 10:40 #4
Наверное, в вашем случае лучше всего воспользоваться сериализацией через cPickle.
Если там сложные составные объекты. Если просто текст - то просто пишите в файл, проблем нет.
0
alex925
2535 / 2186 / 517
Регистрация: 19.03.2012
Сообщений: 8,493
03.10.2016, 10:51 #5
А в чем собственно проблема? Что не получается?
0
DivineShout
0 / 0 / 0
Регистрация: 24.04.2016
Сообщений: 30
03.10.2016, 16:01  [ТС] #6
У меня есть код калькулятора, который делает простые вычисление, и я не знаю как сделать чтобы при закрытии калькулятора последние вычисления сохранялись, и когда мы откроем калькулятор то будем начинать с них. Можете пожалуйста кинуть код. Вот код моего калькулятора
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
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)
0
alex925
2535 / 2186 / 517
Регистрация: 19.03.2012
Сообщений: 8,493
03.10.2016, 17:00 #7
DivineShout, твой не отформатированный код никто даже смотреть не будет

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

Не по теме:

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


Сохранять в файл?
0
DivineShout
0 / 0 / 0
Регистрация: 24.04.2016
Сообщений: 30
05.10.2016, 09:08  [ТС] #10
да.
0
dondublon
1232 / 923 / 106
Регистрация: 17.03.2012
Сообщений: 6,194
Записей в блоге: 5
05.10.2016, 10:39 #11
DivineShout, значит, следующий твой вопрос должен быть - "как в Питоне сохранять в файл?".
И обращать его лучше в гугль, потому что вопрос очень простой и типовой.
0
Tehnic
11 / 11 / 3
Регистрация: 17.06.2016
Сообщений: 70
25.10.2016, 21:10 #12
Последнее выражение допустим в файл сохраняй.
при открытии сразу-(пока не ввел данных пусть будут данние из файла.)
0
25.10.2016, 21:10
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.10.2016, 21:10
Привет! Вот еще темы с ответами:

Очередной калькулятор - Python
Приветствую. Мне поставили задачу забацать калькулятор, которые считывает определенный текст, например: сорок пять + тридцать восемь, и все...

Калькулятор с восстановлением ответа - Python
Ограничение по времени работы программы: 5 секунд Эта задача аналогична предыдущей задаче «Калькулятор», но в этой задаче требуется также...

Реализовать калькулятор чисел Фибоначчи - Python
Всем здравствуйте. Пытался реализовать пример, но не вышло. Вот пример того, что нужно. fibonacci-calculator Я конечно мог...

Калькулятор с восстановлением ответа (Python) - Python
Здравствуйте. В общем, условие такое: *** Исполнитель «Калькулятор» может с заданным числом X выполнить одну из трех операций и ...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

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