Ich würde vorschlagen, das JSON-Format zu verwenden, um Ihre Daten zu speichern, das gibt Ihnen mehr Flexibilität beim Speichern von Daten. Wenn Ihre JSON-Datei sieht wie folgt aus:
{
"phone": {
"iphone": {
"iphone6": {
"8GB": [
[
[
"keyword1",
"keyword2"
],
"solution1"
],
[
[
"keyword3",
"keyword4"
],
"solution2"
]
],
"16GB": [
...
]
},
"iphone7": {
"8GB": ...,
"16GB": ...
},
}
"samsung": ...
},
"tablet": ...
}
(Die ...
stellt die Daten, die Sie dort setzen) Dann können Sie die Benutzereingabedaten direkt als Schlüssel für Ihre Daten verwenden:
import json
# read your data from a file
with open("data.json") as f:
data = json.load(f)
# ask for device
while True:
device = input("Enter your device: ")
try:
device_data = data[device.strip().lower()]
except KeyError:
print("Please enter a valid device.")
else:
break
# ask for manufacturer
while True:
manufacturer = input("Enter the manifacturer of your device: ")
try:
manufacturer_data = device_data[manufacturer.strip().lower()]
except KeyError:
print("Please enter a valid manufacturer.")
else:
break
# ask for model
while True:
model = input("Enter your model: ")
try:
model_data = manufacturer_data[model.strip().lower()]
except KeyError:
print("Please enter a valid model.")
else:
break
# ask for memory
while True:
memory = input("Enter the amount of internal memory you have: ")
try:
memory_data = model_data[memory.strip().lower()]
except KeyError:
print("Please enter a valid amount.")
else:
break
# ask for problem
while True:
problem = input("Enter your problem: ")
words = problem.strip().lower().split(" ")
for keywords, solution in memory_data:
if set(words) & set(keywords):
print(solution)
break
else:
print("A solution could not be found, please describe your problem more clearly.")
I .strip().lower()
enthalten um mehr der möglichen Eingaben gültig zu machen. Dieser akzeptiert "iphone"
, "IPhone"
, "IPHONE"
und " Iphone"
als gültige Eingaben. Um Ihren Benutzern einen Überblick über mögliche Optionen zu geben, können Sie auch die Optionen in Ihren Fragen ausgeben. Dies ist ein Beispiel für die Hersteller:
options = list(device_data.values())
output = "Enter the manifacturer of your device ["+"/".join(options)+"]: "
manufacturer = input(output)
Diese Lösung funktioniert nur, wenn Sie die gleichen Fragen für jedes Gerät stellen wollen. Wenn dies nicht der Fall ist (z. B. möchten Sie den Benutzer nicht fragen, wie viel interner Speicher er hat, wenn er über eine Kamera spricht), können Sie die Frage in die JSON-Datei aufnehmen und die Fragen rekursiv stellen.
kann mir jemand helfen ??? –
Müssen Sie Ihre Informationen wirklich in einer CSV-Datei (im Grunde eine Tabelle) speichern oder können Sie wählen, wie die Daten gespeichert werden? Wenn Sie die Freiheit haben, zu wählen, würde ich JSON sehr empfehlen, weil es besser mit einer hierarchischen Struktur funktioniert. Mit JSON können Sie Ihre Daten in einem Wörterbuch (zB '{device1: [(keywords, solution), (keywords, solution)], device2: [(keywords, solution)]}') ablegen und dann abhängig von der Benutzereingabe. – BurningKarl
Danke. Ich habe JSON recherchiert und versucht, es in meinem Code zu implementieren, aber es funktioniert nicht. Kannst du mir helfen, den Code zu erstellen? ein Beispiel wäre in Ordnung, um mir eine Idee zu geben @BurningKarl –