首页 > 解决方案 > Python:在 for 循环中仅打印 1 行时遇到问题

问题描述

因此,如果使用 userInput 在字典中找到键,我的代码将输出该值。如果在字典的键中找不到 userInput,我想打印一条消息“疾病名称不存在”。我可以让它工作,但是,它会遍历整个列表并为 text.txt 的每一行重复“疾病不存在”

我不知道如何让它只打印一次。这是我的代码:

# Complete this function to meet its specifications.
# Begin with an empty dictionary, fill it, and return it.
def disease_to_code_dictionary(  ) :
    """ Function returns a dictionary with disease names as keys and
      ICD 10 codes as values. """

    diseases = {}

    infile = open("ICD10.txt","r")
    header_row = infile.readline() # skip the header row

    for line in infile :

        cells = line.split("\t") # split by the tab character

        if len(cells) >= 2 : # only if the line had a tab
            code = cells[0]
            disease = cells[1]
            disease = disease.lower() # lowercase
            disease = disease.replace("\"","") # remove all double quotes

            diseases[disease] = code
                
    infile.close()
    
    return diseases


# Complete this function to meet its specifications.
# The program should give the code if the disease name exists
# otherwise say "Disease name does not exist.".
def query_disease_to_code() :
    """ Interactive function to query code from disease name. """
    d = disease_to_code_dictionary() # disease to code dictionary

    query = input("Give disease name (q to quit): ")

    while query != "q" :
        query = query.lower() # lowercase
        # complete here
        for key, value in d.items():
            if query in key:
                print(value)
            else:
                print("Disease name does not exist.")
        
        query = input("Give disease name (q to quit): ")
         
    
query_disease_to_code()
     

标签: pythonpython-3.xdictionaryfor-loopif-statement

解决方案


我认为而不是

for key, value in d.items():
    if query in key:
        print(value)
    else:
        print("Disease name does not exist.")

你可以做

diseases = {'covid':'1223','flu':'1332'}
query = input("Choose your poison")
if query in diseases:
    print(diseases[query])
else:
    print("Disease name does not exist.")

或者如果你喜欢单线

diseases = {'covid':'1223','flu':'1332'}
query = input("Choose your poison")
print (diseases[query] if query in diseases else "Disease Name does not Exist")

推荐阅读