Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
 Аватар для rim41
1045 / 313 / 78
Регистрация: 16.03.2020
Сообщений: 954

Не работает код вызова значения из словаря

15.11.2020, 09:21. Показов 1459. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В коде ниже не срабатывает код вызова переменной, хотя если прописать отдельно в интерпритатор, то все работает.
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
from time import strftime
Vars = dict (vars ())
class Var:
    def __init__(self, value, name, type_ = str):
        self.value = value
        self.name = name
        Vars[self.name] = type_(self.value)
        
cmds = [
    'setVar'
]
def lex(text: str):
    if text == 'exit' or text == 'break':
        exit()
    res = ''
    Vars = vars()
    l_vars = list (Vars.keys ())
    for x in text:
        res += x
        if res in cmds:
            if res == 'setVar':
                var = Var(text.split()[-1], text.split()[1])
        elif text in l_vars:
            print(Vars[text])
def inter():
    while 1:
        lex(input(f'[{strftime("%Y.%m.%d %H:%M")}] -->'))
inter()
скрин неработающего кода есть.

Скорее всего, я где-то в чём то элементарно опечатался, буду благодарен за помощь
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.11.2020, 09:21
Ответы с готовыми решениями:

Не работает перебор словаря и замена значения с проверкой по ключу
Здравствуйте, друзья. Уже несколько часов не могу решить проблему. Я работаю с Renpy (движок для визуальных новелл). Не буду отнимать...

Как проверить наличие значения словаря словаря в словаре словарей?
есть массив parsdata, который содержит результаты парсинга. нужно проверить, спарсилось ли что-то новое. или нет в сравнении со словарем...

Ключи словаря для вызова объекта
Насколько целесообразно использование объектов отображений для вывода в поток stdout терминала значений объектов любого типа(типа...

11
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
15.11.2020, 10:58
Цитата Сообщение от rim41 Посмотреть сообщение
var = Var(text.split()[-1], text.split()[1])
Переменную-то ты создал, но не использовал.
0
 Аватар для rim41
1045 / 313 / 78
Регистрация: 16.03.2020
Сообщений: 954
15.11.2020, 12:07  [ТС]
Цитата Сообщение от iSmokeJC Посмотреть сообщение
var = Var(text.split()[-1], text.split()[1])
а разве
Python
1
2
elif text in l_vars:
            print(Vars[text])
не должен выводить?
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
15.11.2020, 12:58
Цитата Сообщение от rim41
а разве не должен выводить?
Я тебе говорю - то, что ты ввел никуда не сохраняется. Соответственно и выводиться нигде не может
1
 Аватар для rim41
1045 / 313 / 78
Регистрация: 16.03.2020
Сообщений: 954
15.11.2020, 13:01  [ТС]
Цитата Сообщение от iSmokeJC Посмотреть сообщение
никуда не сохраняется
Python
1
 Vars[self.name] = type_(self.value)
не будет работать?
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
15.11.2020, 13:36
rim41, у каша какая-то.
Python
1
2
3
if res == 'setVar':
                var = Var(text.split()[-1], text.split()[1])
                Vars[var.name] = var.value
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
15.11.2020, 13:40
Цитата Сообщение от rim41 Посмотреть сообщение
Vars = dict (vars ())
Кто тебя научил создавать словарь при помощи функции vars? Ты хоть знаешь для чего она вообще нужна?
0
 Аватар для rim41
1045 / 313 / 78
Регистрация: 16.03.2020
Сообщений: 954
15.11.2020, 13:49  [ТС]
Цитата Сообщение от Garry Galler Посмотреть сообщение
Ты хоть знаешь для чего она вообще нужна?
Честно? Нет. Но ведь можно получить словарь "название переменной: значение", разве нет?
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
15.11.2020, 14:11
Лучший ответ Сообщение было отмечено rim41 как решение

Решение

Цитата Сообщение от rim41 Посмотреть сообщение
Но ведь можно получить словарь "название переменной: значение", разве нет?
vars() это уже словарь. Ты делаешь масло масленное.
1
 Аватар для rim41
1045 / 313 / 78
Регистрация: 16.03.2020
Сообщений: 954
16.11.2020, 11:22  [ТС]
Цитата Сообщение от iSmokeJC Посмотреть сообщение
Vars[var.name] = var.value
да нет, эта строчка в инициализации класса
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
16.11.2020, 11:24
И что?
0
 Аватар для rim41
1045 / 313 / 78
Регистрация: 16.03.2020
Сообщений: 954
16.11.2020, 11:26  [ТС]
а вообще, проблема решена, я просто убрал класс переменной и создал свой, отдельный словарь для хранения имя: значение у переменных
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.11.2020, 11:26
Помогаю со студенческими работами здесь

Самый простой PHP код для вызова хранимой функции PostgreSQL и вывода возвращаемого значения?
Имя хранимой в PostgreSQL функции: check_login_and_password Аргументы: "input_login" character varying, "input_pass" character...

Не работает код именно при этих значениях переменных, если значения меньше, то работает.Не могу понять причину
Не работает код именно при этих значениях переменных, если значения меньше, то работает.Не могу понять причинуformat PE GUI 5.0 include...

Значения словаря в процедуру
Всем привет Создаю словари в зависимости от количества листов рабочей книги, в качестве элемента - двумерный массив. Dim Ranges As...

Написал код гистограммы под значения мапа, не работает
std::map<std::string, int> m; int on = 1; int tw = 1; std::map<std::string, int>::iterator p=m.begin(); ...

Изменение значения вложенного словаря
Добрый день! При изменении значения во вложенном словаре plita='5', значение изменяется и в plita: {'ЛДСП 16 БЕЗ ТЕКСТУРЫ':...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru