Форум сайта python.su
Всем привет!
Изучаю язык программирования Python и столкнулся с таким вопросом.
К примеру ниже листинг показывает словарь таблицу - взято с книги Марка Лутса.
Получается вот что - когда мы пишем называние языка программирования, то нам выдает Автора языка, и список c помощью цикла for, и получается. что присваиваем к переменной language вводимое называние и ОК, а что если мы ввели неправильно название, то выдать строку else: print('24 : ENTER the : Python, C++, ASM or Pascal') - но у меня вопрос!!!!
А что если записей в переменной table три миллиарда , получается, что они будут прочитаны/присвоены напрасно при случае неправильного ввода и т/п - Как сделать так, что бы переменная table не участвовала при неправильном вводе, иначе программа так и всяк записывает данные в переменную, хоть она и не участвует при не правильном вводе? (точнее участвует - но в этом и вся трабла)
language = input() table = { 'Python':'Guido van Rosuum', 'C++':'Bjarne Stroustrup', 'ASM':'Randall Hyde', 'Pascal':'Niklaus Emil Wirth' } if language in table: print('23 :',table[language]) for lang in table: # table.keys() print(lang, table[lang]) else: print('24 : ENTER the : Python, C++, ASM or Pascal')
Отредактировано GenOxyGen (Янв. 14, 2025 15:16:17)
Офлайн
GenOxyGenчто в твоем понятии напрасно?
переменная table присвоит все 3 -4 миллиарда записей в программе напрасно
Офлайн
xam1816Если пользователь введет неправильный ключ, то программа все-равно присвоит к переменной table все 3-4 миллиарда записей словаря для проверки на вхождение егошнего значения в словаре и получается, что программа для этого присвоит все 3-4 миллиарда записей напрасно - есть выход?
Отредактировано GenOxyGen (Янв. 14, 2025 11:59:18)
Офлайн
xam1816
что в твоем понятии напрасно?
Офлайн
GenOxyGenну вот ввел я ключ, как я пойму, тот правильный ключ или нет? соответственно мне нужно поискать его в таблице. Так таблица нужна в любом случае для этого.Или хочешь сказать, что нужно его найти без таблицы)))т.е искать этот ключ нигде
Если пользователь введет неправильный ключ, то программа все-равно присвоит к переменной table все 3-4 миллиарда записей словаря
Офлайн
GenOxyGenдля это придумана база данных, которая хранит данные, сжимает, осуществляет поиск и прочее
3 - 4 миллиарда записей словаря в память ПК - расточительство наперсно
Офлайн
xam1816Начинаю понимать, да я только начал изучать, поэтому такие вопросы появляются, хотя в этом логика есть на счет 3-4 млрд , предполагаю, что в мире системы так и работают переберая значения на стороне супер компьютеров-процессором и т.д)) или системы оптимизации кода, и все же для Пкшнего приложения это минус, если речь идет даже о 10000 записей, по-любому прога притормозит в этом случает (наверное) не уверен От души за ответы!
для это придумана база данных, которая хранит данные, сжимает, осуществляет поиск и прочее
Офлайн
xam1816
ну вот ввел я ключ, как я пойму, тот правильный ключ или нет? соответственно мне нужно поискать его в таблице. Так таблица нужна в любом случае для этого.Или хочешь сказать, что нужно его найти без таблицы)))т.е искать этот ключ нигде
Отредактировано GenOxyGen (Янв. 14, 2025 12:49:49)
Офлайн
GenOxyGenя бы тебе посоветовал на начальном этапе не обращать на это внимание, иначе из-за стараний написать сразу идеальный код, ты ничего так и не напишешь. Самое лучшее в обучении, когда ты именно нарвешься на ошибку или что медленно работает или забирает много памяти.Когда сам исправляешь эти ошибки, разбираясь почему они возникают, тогда ты и становишься специалистом. Еще раз повторю, только исправление ошибок своих, да и чужих в принципе, научит тебя программировать. А чтобы ошибиться, нужно сначала ошибиться, т.е создать что-то неидеальное, а потом понять что в нем не так. Обоснованно зная как не нужно делать, в реальном проекте будет больше шансов сделать правильно
если речь идет даже о 10000 записей, по-любому прога притормозит в этом
Офлайн
xam1816
я бы тебе посоветовал на начальном этапе не обращать на это внимание, иначе из-за стараний написать сразу идеальный код, ты ничего так и не напишешь. Самое лучшее в обучении, когда ты именно нарвешься на ошибку или что медленно работает или забирает много памяти.Когда сам исправляешь эти ошибки, разбираясь почему они возникают, тогда ты и становишься специалистом. Еще раз повторю, только исправление ошибок своих, да и чужих в принципе, научит тебя программировать. А чтобы ошибиться, нужно сначала ошибиться, т.е создать что-то неидеальное, а потом понять что в нем не так. Обоснованно зная как не нужно делать, в реальном проекте будет больше шансов сделать правильно
Офлайн