python - 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()
解决方案
我认为而不是
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")
推荐阅读
- flutter - 如何使用密钥从 Firestore 加载数据
- python - 即使我插入正确的值,Python While 也会继续循环
- php - 使用 laravel 向客户发送自定义电子邮件
- sql - 将 JSON 数组与另一个表连接
- javascript - 数据未在带有 ajax 的模式窗口中动态显示
- pandas - 为排名分布绘制 CDF
- asp.net-core - ASP.NET Core 3.1“不支持的处理程序方法返回类型'Microsoft.AspNetCore.Mvc.Rendering.SelectList'”
- jenkins - Jenkins 管道中的 Jenkins 用户接受代码问题。如何在单个管道中实现多个验收代码
- google-analytics - 谷歌分析中的移动应用属性与网络应用相匹配
- flutter - 如果小时小于10,颤振如何在一个小时后面添加一个0?