Как ввести несколько ключей, и результат должен возвращать несколько значений. Пожалуйста, проверьте сценарий и мой комментарий - PullRequest
0 голосов
/ 14 июля 2020
nestdic = { 'modelname' : {
'mod-num-1221' : 'LENEVO' ,
'mod-num-1222' : 'ASUS' ,
'mod-num-1223' : 'APPLE' ,
'mod-num-1224' : 'SAMSUNG' ,
'mod-num-1225' : 'HP'
}, 'ostype' : {
'LENEVO' : 'Windows' ,
'ASUS' : 'Windows' ,
'APPLE' : 'IOS' ,
'SAMSUNG' : 'LINUX' ,
'HP' : 'Windows'
} }

option = input("Please select from the below options\n1. Vendor Name type\n2. OS type\n\n\nPlease make a selection or press Q to quit: ")
if option == '1':
        for i in range(5):
                modelnum = input("Please enter the model num: ")
                model = list(nestdic['modelname'])
                if modelnum not in model:
                        print("Model name not found")
                        continue
                modelname = nestdic['modelname'][modelnum]
                if modelnum in model:
                        print("model name = " + modelname)
elif option == '2':
        for i in range(5):
                compname = input("Please enter the vendors name: ")
                os = list(nestdic['ostype'])
                if compname not in os:
                        print("os name not found")
                        continue
                compsname = nestdic['ostype'][compname]
                if compname in os:
                        print("OS type = " + compsname)

Когда я запускаю этот скрипт, он запрашивает у меня варианты. Если я выберу номер модели, он попросит меня ввести номер модели ... когда я ввожу номер модели (ключ), он дает мне имя модели (значения) ... В настоящее время я могу ввести один раз и получить только один выход. Я хочу ввести несколько значений и получить несколько выходов. Вход = номер модуля-1221, номер модуля-1222, номер модуля-1225 Выход = LENEVO, ASUS, HP

1 Ответ

0 голосов
/ 14 июля 2020

Здесь есть чему учиться. Я внес несколько других изменений в ваш код, чтобы исправить некоторые недостатки; взгляните на комментарии.

import re

nestdic = { 'modelname' : {
'mod-num-1221' : 'LENEVO' ,
'mod-num-1222' : 'ASUS' ,
'mod-num-1223' : 'APPLE' ,
'mod-num-1224' : 'SAMSUNG' ,
'mod-num-1225' : 'HP'
}, 'ostype' : {
'LENEVO' : 'Windows' ,
'ASUS' : 'Windows' ,
'APPLE' : 'IOS' ,
'SAMSUNG' : 'LINUX' ,
'HP' : 'Windows'
} }

option = input("Please select from the below options\n1. Vendor Name type\n2. OS type\n\n\nPlease make a selection or press Q to quit: ")
if option == '1':
        models = nestdic['modelname'] # no reason for this to be in the loop and don't convert to list
        while True: # loop while there is an error
                error = False
                modelnums_str = input("Please enter the model numbers separated by commas: ").strip()
                if modelnums_str == '':
                        continue
                modelnums = [modelnum for modelnum in re.split(r',\s*', modelnums_str)]
                modelnames = []
                for modelnum in modelnums:
                        if modelnum not in models:
                                print(f'Model number {modelnum} not found.')
                                error = True
                        else:
                                modelnames.append(models[modelnum])
                if error:
                        continue
                if modelnames:
                        print(f"Input = {', '.join(modelnums)}, Output = {', '.join(modelnames)}")
                        break

elif option == '2':
        os = nestdic['ostype'] # no reason for this to be in the loop and don't convert to a list
        for i in range(5):
                compname = input("Please enter the vendors name: ")
                if compname not in os:
                        print("os name not found")
                        continue
                compsname = os[compname]
                print("OS type = " + compsname)

Попробуйте использовать 4 пробела для отступа; 8 многовато. См. PEP 8 - Руководство по стилю для Python Код

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...