回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我对Python相当陌生,我想知道如何解决一个问题。我正在做一个基于文本的测试,识别症状并确定你可能患有的疾病。我列出了几个症状清单。然后,我为每种疾病制定了一种方法(重复——我知道),循环检查症状并检查用户输入是否匹配。如果没有,我希望从可能的疾病列表中删除该症状。但是请看,代码可以识别症状是否与第一个问题相匹配,但是程序仍然会在可能性列表中查找该疾病,即使该疾病已被删除。如果疾病不在可能列表中,我尝试使用布尔变量来阻止程序循环。我已经试着使用for循环和可能的列表。我最近的一次尝试是将以前的布尔变量转换成字符串,并以这种方式进行检查。正如我所说,我对Python相当陌生,所以如果这是一个简单的错误,我很抱歉。如果你能帮忙,请帮忙!这个项目周五到期。非常感谢你</p>
<p>下面是代码(如果太长,很抱歉。Python新手,网站新手!):</p>
<pre><code>possibles = [ "InfluenzaA", "InfluenzaB", "InfluenzaC", "CommonCold", "Pneumonia", "StrepThroat", "b", "n", "Croup", "EnterovirusD68", "h", "Herpangina", "PinkEye", "Pertussis"]
InfluenzaA = ["Cough", "Runny nose" "Stuffy nose", "Sneezing", "Sorethroat", "Fever", "Headache", "Bodychills", "Fatigue", "Body aches"]
CommonCold = ["Cough", "Runny nose" "Stuffy nose", "Sneezing", "Sorethroat", "Fever", "Headache", "Bodychills", "Fatigue", "Body aches"]
InfluenzaB = ["Cough", "Stuffy nose", "Sore throat", "Fever", "Headache", "Body chills", "Fatigue", "Muscle aches", "Nausea", "Vomiting"]
InfluenzaC = ["Cough", "Rhinorrhea", "Fever", "Headache", "Muscle pain" ]
CommonCold = ["Cough", "Runny nose", "Stuffy nose", "Congestion", "Sneezing","Sore throat", "Fever", "Headache", "Malaise"]
Pneumonia = ["Cough", "Chest pain", "Fever", "Fatigue", "Loss of appetite", "Body pain", "Shortness of breath", "Fast heartbeat"]
StrepThroat = ["Fever", "Headache", "Throat pain", "Loss of appetite", "Nausea", "Vomiting", "White dots", "Red dots", "Inability or diffuculty swallowing"]
Bronchiolitis = ["Cough", "Runny nose", "Stuffy nose", "Fever", "Shortness of breath", "Wheezing", "Ear pain", "Loss of fluids"]
Norovirus = ["Fever", "Abdominal pain", "Malaise", "Muscle pain", "Diarrhea", "Nausea", "Vomiting"]
Croup = ["Cough", "Runny nose", "Stuffy nose", "Shortness of breath", "Wheezing", "Sore throat", "Fever", "Throat pain", "Fatigue"]
EnterovirusD68 = ["Cough", "Runny nose", "Stuffy nose", "Sneezing", "Wheezing", "Fever", "Body aches"]
HandFootandMouthDisease = ["Sore throat", "Fever", "Headache", "Fatigue","Rash", "Drooling"]
Herpangina = ["Sore throat", "Fever", "Headache", "Fatigue", "Loss of appetite", "Inabilty or diffuculty swallowing", "Mouth blisters or ulcers", "Drooling", "Vomiting"]
PinkEye = ["Red eye", "Eye discharge", "Blurred vision", "Light sensitivity"]
Pertussis = ["Cough", "Runny nose", "Stuffy nose", "Fever", "Fatigue", "Vomiting", "Mucus in the throat"]
stinA = "yes"
stinBe = "yes"
stinC = "yes"
stinPer = "yes"
stinHM = "yes"
stinH = "yes"
stinE = "yes"
stinN = "yes"
stinPE = "yes"
stinCr = "yes"
stinCC = "yes"
stinST = "yes"
def cycleInfluenzaA(sy, stinA):
for i in range(len(InfluenzaA)):
if InfluenzaA[i].upper() == sy.upper():
return
possibles.remove("InfluenzaA")
stinA = "no"
</code></pre>
<p>(其余格式相同)</p>
<pre><code>def ask(bod, stinCC, stinCr, stinE, stinA, stinC, stinBe, stinH, stinN, stinPer, stinPE):
sy = input("Have you experienced any symptoms relation to your " + bod + "\n")
if stinCC == "yes":
cycleCold(sy, stinCC)
</code></pre>
<p>(其余格式相同)</p>
<pre><code>print("Welcome to this medical database. This is an interactive test to determine what illness a taker may be suffering from. Let's begin.")
ask("chest", stinCC, stinCr, stinE, stinA, stinC, stinBe, stinH, stinN, stinPer, stinPE)
ask("throat", stinCC, stinCr, stinE, stinA, stinC, stinBe, stinH, stinN, stinPer, stinPE)
</code></pre>
<p>以下是错误:</p>
<blockquote>
<p>Traceback (most recent call last): File "main.py", line 150, in
</p>
<p>ask("throat", stinCC, stinCr, stinE, stinA, stinC, stinBe, stinH,
stinN, stinPer, stinPE)</p>
<p>File "main.py", line 140, in ask</p>
<p>cycleHerpangina(sy, stinH)</p>
<p>File "main.py", line 100, in cycleHerpangina</p>
<p>possibles.remove("Herpangina")</p>
<p>ValueError: list.remove(x): x not in list</p>
</blockquote>