Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
1 / 0 / 1
Регистрация: 19.10.2019
Сообщений: 18

Недо калькулятор. Почему переменная не глобализуется?

23.12.2019, 20:00. Показов 670. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
def addition(x, b):
        x = int(a[0])
        x = x + b
        global x
        return x
def subtraction(x, l):
        x = int(a[0])
        x = x - l
        global x
        return x
def multiplication(x, k):
        x = int(a[0])
        x = x * k
        global x
        return x
def division(x, o):
        x = int(a[0])
        x = x / o
        global x
        return x
 
a = input()
g = len(a)
u = a[0:g:2]
h = a[1:g:2]
x = int(a[0])
q = len(u)
w = q + 1
z = 0
zz = u[1]
zzz = int(zz)
s = 1
while s != w:
        for i in range(len(h)):
            if h[i] == '+':
                v = int(u[1])
                z = addition(x, v)
                print (z)
                s = s + 1
            elif h[i] == '-':
                v = int(u[1])
                z = subtraction(x, v) 
                print (z)
                s = s + 1
            elif h[i] == '*':
                v = int(u[1])
                z = multiplication(x, v)
                print (z)
                s = s + 1
            elif h[i] == '/':
                if zzz == 0:
                    print ('Error')        
                    break        
                v = int(u[1])
                z = division(x, v)
                print (z)
                s = s + 1
            else:
                print ('Error')
                break
Ошибку выдает в строках 4, 8, 12, 16.
В зависимости от первого знака действия.
Текст ошибки: line 4, in ? global x
Все равно какую ошибку оно выдаст потом. Главное что бы глобализация 'x' работала.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.12.2019, 20:00
Ответы с готовыми решениями:

недо md5
Добрый день. На прошлых презентациях mbarcadero, хвалебно писала что все что можно перенесла на Юникод (исключение только старые...

Недо-бот для браузера
Доброго времени суток, дорогие кодеры. Возникла необходимость в создание некоего "бота", скорее даже спам-бота) Суть его работы...

Умер недо DualBios, перепрошить программатором?
Имеется мать GA-H110M-S2 На ней стоит DualBios, но на самой плате нету микросхемы бэкап биоса (b_bios), есть только m_bios Судя по...

3
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38200 / 21132 / 4310
Регистрация: 12.02.2012
Сообщений: 34,739
Записей в блоге: 14
23.12.2019, 20:29
Дикая каша... x одновременно и глобальная переменная и параметр. Так нельзя.
0
55 / 40 / 18
Регистрация: 16.12.2019
Сообщений: 149
23.12.2019, 21:44
NOCIA_3310,
"Эта задача" имеет много вариаций и до Вас ее решали сотни... Пользуйтесь поиском по форуму и Google. Поверьте, так будет быстрее и полезнее, чем дожидаться ответа на форуме.
+ Недавний вопрос:
Ошибка NameError: name 'c' is not defined
0
Эксперт Python
1356 / 653 / 207
Регистрация: 23.03.2014
Сообщений: 3,057
23.12.2019, 21:52
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
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
# calculator using Tkinter
 
# import everything from tkinter module
from tkinter import *  # импортируемим tkinter
 
# globally declare the expression variable
expression = ""  # заявляем глобальную константу для выражений
 
 
# Function to update expressiom
# in the text entry box
def press(num):  # функция нажатия клавиш, полцчает num
    # point out the global expression variable
    global expression  # и предает на глоб. уровень  переменную expression
 
    # concatenation of string
    expression = expression + str(num)  # вносим в нее полученнное от клавиши значение
 
    # update the expression by using set method
    equation.set(expression)  # обновляем полученное значение
 
 
# Function to evaluate the final expression
def equalpress():  # складываем выражение в целое
    # Try and except statement is used
    # for handling the errors like zero
    # division error etc.
 
    # Put that code inside the try block
    # which may generate the error
    try:  # если выраженем существут, то
 
        global expression
 
        # eval function evaluate the expression
        # and str function convert the result
        # into string
        total = str(eval(expression))
 
        equation.set(total)
 
        # initialze the expression variable
        # by empty string
        expression = ""
 
        # if error is generate then handle
    # by the except block
    except:
 
        equation.set(" error ")
        expression = ""
 
    # Function to clear the contents
 
 
# of text entry box
def clear():
    global expression
    expression = ""
    equation.set("")
 
 
# Driver code
if __name__ == "__main__":
    # create a GUI window
    gui = Tk()
 
    # set the background colour of GUI window
    gui.configure(background="light green")
 
    # set the title of GUI window
    gui.title("Simple Calculator")
 
    # set the configuration of GUI window
    gui.geometry("265x125")
 
    # StringVar() is the variable class
    # we create an instance of this class
    equation = StringVar()
 
    # create the text entry box for
    # showing the expression .
    expression_field = Entry(gui, textvariable=equation)
 
    # grid method is used for placing
    # the widgets at respective positions
    # in table like structure .
    expression_field.grid(columnspan=4, ipadx=70)
 
    equation.set('enter your expression')
 
    # create a Buttons and place at a particular
    # location inside the root window .
    # when user press the button, the command or
    # function affiliated to that button is executed .
    button1 = Button(gui, text=' 1 ', fg='black', bg='red',
                     command=lambda: press(1), height=1, width=7)
    button1.grid(row=2, column=0)
 
    button2 = Button(gui, text=' 2 ', fg='black', bg='red',
                     command=lambda: press(2), height=1, width=7)
    button2.grid(row=2, column=1)
 
    button3 = Button(gui, text=' 3 ', fg='black', bg='red',
                     command=lambda: press(3), height=1, width=7)
    button3.grid(row=2, column=2)
 
    button4 = Button(gui, text=' 4 ', fg='black', bg='red',
                     command=lambda: press(4), height=1, width=7)
    button4.grid(row=3, column=0)
 
    button5 = Button(gui, text=' 5 ', fg='black', bg='red',
                     command=lambda: press(5), height=1, width=7)
    button5.grid(row=3, column=1)
 
    button6 = Button(gui, text=' 6 ', fg='black', bg='red',
                     command=lambda: press(6), height=1, width=7)
    button6.grid(row=3, column=2)
 
    button7 = Button(gui, text=' 7 ', fg='black', bg='red',
                     command=lambda: press(7), height=1, width=7)
    button7.grid(row=4, column=0)
 
    button8 = Button(gui, text=' 8 ', fg='black', bg='red',
                     command=lambda: press(8), height=1, width=7)
    button8.grid(row=4, column=1)
 
    button9 = Button(gui, text=' 9 ', fg='black', bg='red',
                     command=lambda: press(9), height=1, width=7)
    button9.grid(row=4, column=2)
 
    button0 = Button(gui, text=' 0 ', fg='black', bg='red',
                     command=lambda: press(0), height=1, width=7)
    button0.grid(row=5, column=0)
 
    plus = Button(gui, text=' + ', fg='black', bg='red',
                  command=lambda: press("+"), height=1, width=7)
    plus.grid(row=2, column=3)
 
    minus = Button(gui, text=' - ', fg='black', bg='red',
                   command=lambda: press("-"), height=1, width=7)
    minus.grid(row=3, column=3)
 
    multiply = Button(gui, text=' * ', fg='black', bg='red',
                      command=lambda: press("*"), height=1, width=7)
    multiply.grid(row=4, column=3)
 
    divide = Button(gui, text=' / ', fg='black', bg='red',
                    command=lambda: press("/"), height=1, width=7)
    divide.grid(row=5, column=3)
 
    equal = Button(gui, text=' = ', fg='black', bg='red',
                   command=equalpress, height=1, width=7)
    equal.grid(row=5, column=2)
 
    clear = Button(gui, text='Clear', fg='black', bg='red',
                   command=clear, height=1, width=7)
    clear.grid(row=5, column='1')
 
    # start the GUI
    gui.mainloop()
Добавлено через 59 секунд
Или так
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
want = input("Какую операцию необходимо провести (+,-,/,*) :")
a = float(input('Введите первое число :'))
b = float(input("Введите второе число :"))
if want == '+':
    c = a + b
    print(c)
elif want == '-':
    c = a - b
    print(c)
elif want == '/':
    c = a / b
    print(c)
elif want == '*':
    c = a * b
    print(c)
print('Подсчет выполнен!')
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.12.2019, 21:52
Помогаю со студенческими работами здесь

Почему не определена переменная
Здравствуйте! Пытаюсь решить систему уравнений в Mathcad-e, но пишет, что не определена переменная, как решить вопрос?

ПОчему переменная пустая?
Несколько button выводятся в цикле foreach. alert работает и выводит у каждой кнопки свой id. Почему переменная $ids пустая? Так же скрин...

Почему не объявляется переменная
import random import turtle turn = random.randint(0, 1) choose = 0 grid = playerX = player0 =

Почему переменная всегда 0?
У меня есть такой триггер: DECLARE @studentsQuantity int --Количество учеников в классе ,@certifiedQuantity int --Количество...

Почему не нарастает переменная?
Структура страницы - фреймы. Объявлены так: <frameset rows='120,*' border='0'> <frame name='Frame1' src='top.html' scrolling='No'> ...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru