0 / 0 / 0
Регистрация: 01.05.2023
Сообщений: 10

Исправление кода

12.05.2023, 20:42. Показов 866. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Python
1
2
3
if function[0:13] == "сколько будет":
    result = function[14:]
    print("Результат вычисления:",result)
Нужно, чтобы result выводил решение примера, а не сам пример. Как это можно сделать? (без eval)
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.05.2023, 20:42
Ответы с готовыми решениями:

Исправление кода
Нужно добавить в описание проблемы тип response в эту строчку raise TypeError('В ответе от API нет корректных данных') и тип response в...

Исправление кода
Нужно исправить код убрав лишние элементы и добавить взаимодействие с файлами вот код: import random result = list() ...

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

7
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7391 / 4818 / 1246
Регистрация: 30.03.2015
Сообщений: 13,688
Записей в блоге: 29
12.05.2023, 20:43
Karin76800, разбить на числа и арифметические знаки, вычислить
1
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38173 / 21108 / 4307
Регистрация: 12.02.2012
Сообщений: 34,710
Записей в блоге: 14
12.05.2023, 22:01
Лучший ответ Сообщение было отмечено Welemir1 как решение

Решение

Цитата Сообщение от Karin76800 Посмотреть сообщение
исправление кода
- может выглядеть примерно так:

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
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
# Парсер
 
def parser(formula):
    
    res=[]
    delims="+-*/^()"
    
    par=0  # счетчик скобок
    
    tmp=""
    
    for a in formula:
        
        if a == ' ':
            continue
        
        if a in delims:
            if len(tmp) > 0: 
                res.append(tmp)
            res.append(a)
            tmp=""
            
            if a == "(":
                par+=1
            if a == ")":
                par-=1
            
            if par < 0:
                return -1,None
                
        else:
            tmp=tmp+a
            
    if len(tmp) > 0: 
        res.append(tmp)
        
    return par,res
 
# Борьба с унарным минусом  (либо в начале формулы, либо в контексте "(-ссс"
 
def macro(formula):
    if formula[0]=="-":
        formula="0"+formula
    formula=formula.replace("(-","(0-")    
    return formula
 
# Вычислитель
 
def calc(formula):
    
    def prty(op):   # дать приоритет операции
        if op=="(":
            return 0
        if op=="+" or op == "-":
            return 1
        if op=="*" or op == "/":
            return 2
        if op=="^":
            return 3
            
    def exec():      # выполнить операцию
    
        a2=s1[-1]    # второй операнд
        a1=s1[-2]    # первый операнд
        op=s2[-1]    # операция
        
        # исключить из стеков op,a1 и a2
        
        del s2[-1]
        del s1[-1]
        del s1[-1]
        
        if (op == "+"):
            r=a1+a2
            s1.append(r)
            return
        if (op == "-"):
            r=a1-a2
            s1.append(r)
            return
        if (op == "*"):
            r=a1*a2
            s1.append(r)
            return
        if (op == "/"):
            r=a1/a2
            s1.append(r)
            return
        if (op == "^"):
            r=a1**a2
            s1.append(r)
            return
 
    # Начало
 
    par,lexs=parser(macro(formula))
 
    if (par != 0):
        print("В формуле не сбалансированы скобки!")
        return None
 
    s1=[] # стек чисел
    s2=[] # стек операций
    
    for lex in lexs:
 
        #  Обработка числа
        
        if lex[0] in "0123456789":
            s1.append(float(lex))
            continue
        
        #  Открывающая скобка
        
        if lex == "(":
            s2.append(lex)
            continue
        
        # Оперция 
        
        if lex in "+-*/^":
 
            if len(s2) == 0:       # Первая (s2 пуст)
            
                s2.append(lex)
                continue
            
            else:                  # не первая
            
                p1=prty(lex)       # приотритет пришедшей операции
                p2=prty(s2[-1])    # приоритет вершины стека
                
                if p1 > p2:        # пришла более приоритетная операция
                    s2.append(lex) # в стек ее!
                    continue
                else:              # выполняем то, что накоплено
                
                    while True:   
                        exec()            # выполняем операцию
                        if len(s2) == 0:
                            break
                        p2=prty(s2[-1])   # обновляем приоритет вершины s2
                        if (p2 != p1):
                            break
 
                    s2.append(lex) # в стек пришедшую менее приоритетную операцию
                    continue
                
        if lex == ")":  # выталкиваем все операции до появления открывающей скобки
            
            while s2[-1] != "(":
                exec()
            
            # Удаляем открывающую скобку
            
            del s2[-1]
            
            continue
        
    # Финишное опустошение стреков
 
    while len(s1) > 1:
        
        exec()
        
    return s1[0]    
    
# Запрос
 
ask=input("Введите запрос: ")
 
if ask[0:13] == "сколько будет":
    result = calc(ask[14:])
    print("Результат вычисления:",result)
else:
    print("Не понял...")
Пример диалога:

Введите запрос: сколько будет (5+7)*8-5/12
Результат вычисления: 95.58333333333333
3
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7391 / 4818 / 1246
Регистрация: 30.03.2015
Сообщений: 13,688
Записей в блоге: 29
13.05.2023, 09:42
Catstail, ничего себе вас задача увлекла) или это из закромов старых?
1
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38173 / 21108 / 4307
Регистрация: 12.02.2012
Сообщений: 34,710
Записей в блоге: 14
13.05.2023, 10:19
Welemir1, не так давно писано. Я алгоритм Бауэра студентам преподаю
1
 Аватар для Semen-Semenich
5227 / 3473 / 1174
Регистрация: 21.03.2016
Сообщений: 8,301
13.05.2023, 14:39
Цитата Сообщение от Catstail Посмотреть сообщение
Я алгоритм Бауэра студентам преподаю
жаль что я не ваш студент. мне уже пора алгоритм начисления пенсии изучать
1
13.05.2023, 15:04

Не по теме:

Semen-Semenich, все украдено посчитано за нас )))

Catstail, а вы лекции не записываете?

0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38173 / 21108 / 4307
Регистрация: 12.02.2012
Сообщений: 34,710
Записей в блоге: 14
13.05.2023, 21:12
Цитата Сообщение от Welemir1 Посмотреть сообщение
а вы лекции не записываете?
кое-что записывал. Есть простенький курс по Питону и курс по Лиспу.

Есть отдельная лекция по плавающей точке

Добавлено через 52 секунды
Semen-Semenich, да это все многократно описано...
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.05.2023, 21:12
Помогаю со студенческими работами здесь

Исправление ошибок регистра в предложении
Мне необходимо написать код, который исправление ошибок регистра во введенном предложении. Например: 'привет! я Сергей'. Необходимо...

Рекурсия Код не работает, нужно исправление
F(n)=3 при n=1 если n чётно F(n)=n+F(n/2) Если n нечётно и при этом больше одного, то F(n)=3*F(n-1) Нужно найти значение от 115 ...

Исправление кода
я хочу что бы программа после нажатия на turtle мне зачитывали Переменную 'points'. но я не могу разобраться в чём ошибка. Помогите...

Исправление кода
Возможно ли как-нибудь поменять список на множество, но чтобы код оставался рабочим? Ввод: Вводится натуральное число. Вывод: ...

Исправление опечаток
Нужно с помощью регулярных выражений написать программу которая будет исправлять опечатки. Нужно чтобы принимала такую строку&quot; ...


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

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

Новые блоги и статьи
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru