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

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

15.11.2020, 09:21. Показов 1402. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru